mirror of
https://codeberg.org/forgejo/docs.git
synced 2024-11-26 18:29:35 -05:00
77e3e1205f
Run a LXC container that hosts static pages. * manual one time configuration (web server configuration, git clone of content) * webhook based pull for updates It is created to host the F3 documentation. It can be used in the future to host the Forgejo website and retire Uberspace. Refs: https://codeberg.org/forgejo/governance/issues/36 Refs: https://forgejo.org/docs/v7.0/developer/infrastructure/#uberspace Refs: https://codeberg.org/forgejo/discussions/issues/114
2.2 KiB
2.2 KiB
title | license |
---|---|
Static pages | CC-BY-SA-4.0 |
LXC container dedicated to hosting static HTML pages.
LXC container
See the static-pages section in the infrastructure documentation.
SSL on the LXC host
Each domain has a /etc/nginx/sites-enabled/f3.forgefriends.forgejo.org
file similar to the following
on the host where the LXC container resides.
server {
listen 80;
listen [::]:80;
server_name f3.forgefriends.forgejo.org;
location / {
proxy_pass http://10.6.83.106:80;
}
}
Obtain the certificate:
sudo certbot -n --agree-tos --email contact@forgejo.org -d f3.forgefriends.forgejo.org --nginx
Creation in the LXC container
With the example of f3.forgefriends.forgejo.org
and
f3.forgefriends.org
serving the same content.
login
From the LXC host:
lxc-helpers.sh lxc_container_run static-pages -- sudo --user $USER bash
nginx
server {
listen 80;
server_name f3.forgefriends.org f3.forgefriends.forgejo.org;
root /var/www/f3.forgefriends.org;
location / {
try_files $uri $uri/ =404;
}
}
clone
git clone https://code.forgejo.org/f3/html-documentation /var/www/f3.forgefriends.org
Update in the LXC container
Webhook
Create a POST
webhook with the URL https://f3.forgefriends.forgejo.org/.well-known/forgejo/f3.forgefriends.org
on https://code.forgejo.org/f3/html-documentation. It is expected to fail with 404, the information will be extracted from the web server logs.
Service
git pull on change
$ cat /usr/local/bin/static-pages.sh
sudo tail -f /var/log/nginx/access.log | sed --silent --regexp-extended --unbuffered --expression 's|.*.well-known/forgejo/([^ ]+) .*|\1|p' | while read server ; do
d="/var/www/$server"
if test -d "$d" ; then
echo "update $server"
cd "$d"
git pull
fi
done
service
$ cat /etc/systemd/system/static-pages.service
[Unit]
Description=Static pages
[Service]
User=debian
ExecStart=/usr/local/bin/static-pages.sh
[Install]
WantedBy=multi-user.target
$ sudo systemctl enable static-pages