diff --git a/docs/debian_nspawn_container_on_arch_for_testing_apache_configurations.md b/docs/debian_nspawn_container_on_arch_for_testing_apache_configurations.md
new file mode 100644
index 0000000..30cffad
--- /dev/null
+++ b/docs/debian_nspawn_container_on_arch_for_testing_apache_configurations.md
@@ -0,0 +1,94 @@
+# Debian Nspawn Container On Arch For Testing Apache Configurations
+
+Begin by exporting the environmental variable for your squid cacheing
+proxy. If you're deboostrapping Debian file systems, the best way to
+speed this up is with squid.
+
+The ArchWiki page for nspawn containers has a
+[Debian/Ubuntu subsection](https://wiki.archlinux.org/index.php/Systemd-nspawn#Create_a_Debian_or_Ubuntu_environment)
+Obviously you're going to want to install debootstrap and debian-archive-keyring.
+
+```bash
+# to create a Stretch Container
+cd /var/lib/machines
+mkdir
+deboostrap stretch
+```
+
+After some experimentation, perhaps this is the best time to write
+the intended hostname into the container, and write any
+apt-cacher or apt-cacher-ng proxies into /etc/apt/apt.conf
+on the container.
+
+```bash
+cp apt.conf /etc/apt/apt.conf
+echo "" > /var/lib/machines//etc/hostname
+```
+
+And then start the container, and set the root password.
+
+```bash
+# boot in interactive mode
+systemd-nspawn -D
+# set the passwd and logout
+password
+logout
+```
+
+Now we can boot the container in non-interactive mode, either
+from the command line or using nspawn files. In either case
+double check that the your bind mounts have the correct permissions
+from inside the container.
+
+```bash
+# for instance attached to a bridge interface br0
+systemd-nspawn -b -D --network-bridge=br0
+# or if you've set up a package cache
+systemd-nspawn -b -D --network-bridge=br0 --bind=/var/cache/apt/archives
+```
+
+Alternately, if you use an nspawn file, then you can use a command
+similar to the following to start it, you'll first need to
+boot the container from the command line and install dbus,
+because `machinectl shell` and `machinectl login` won't work
+without dbus. In this case use the following sequence of commands.
+
+```bash
+# start the container and login as root
+systemd-nspawn -b -D --network-bridge=br0
+# bring up networking so you can install dbus
+# this is also a good time to install and configure locale
+apt install dbus locales
+# to configure locale
+dpkg-reconfigure locales
+poweroff
+```
+
+After this you can start the container with systemd, when
+using an nspawn file.
+
+```bash
+systemctl start systemd-nspawn@
+```
+
+```text
+# /etc/systemd/nspawn/.spawn
+[Files]
+# Bind=/var/cache/apt/archives
+
+[Network]
+bridge=br0
+```
+
+You can use tasksel to install a web-server.
+
+```bash
+# apache2 will immediately be listening on port 80
+tasksel install web-server
+# enable mod ssl
+a2enmod ssl ; systemctl restart apache2
+# enable the default ssl test page
+a2ensite /etc/apache2/sites-available/default-ssl.conf
+```
+
+You'll be up and running with the default self-signed certs.
diff --git a/docs/index.md b/docs/index.md
index 8b10551..d0e901b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -4,6 +4,7 @@ Obviously, the commit history will reflect the time when these documents are wri
* [Serve And Share Apps From Your Phone With Fdroid](serve_and_share_apps_from_your_phone_with_fdroid.md)
* [Nspawn Containers](nspawn.md)
+* [Debian Nspawn Container On Arch For Testing Apache Configurations](debian_nspawn_container_on_arch_for_testing_apache_configurations.md)
* [Dynamic Cacheing Nginx Reverse Proxy For Pacman](dynamic_cacheing_nginx_reverse_proxy_for_pacman.md)
* [Quick Dirty Redis Nspawn Container on Arch Linux](arch_redis_nspawn.md)
* [Quick Dirty Postgresql Nspawn Container on Arch Linux](arch_postgresql_nspawn.md)
diff --git a/mkdocs.yml b/mkdocs.yml
index 36039c0..b10085b 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -6,6 +6,7 @@ pages:
- 'Home': index.md
- 'Serve And Share Apps From Your Phone With Fdroid': serve_and_share_apps_from_your_phone_with_fdroid.md
- 'Nspawn': nspawn.md
+ - 'Debian Nspawn Container On Arch For Testing Apache Configurations': debian_nspawn_container_on_arch_for_testing_apache_configurations.md
- 'Dynamic Cacheing Nginx Reverse Proxy For Pacman': dynamic_cacheing_nginx_reverse_proxy_for_pacman.md
- 'Quick Dirty Redis Nspawn Container on Arch Linux': arch_redis_nspawn.md
- 'Quick Dirty Postgresql Nspawn Container on Arch Linux': arch_postgresql_nspawn.md
diff --git a/site/arch_postgresql_nspawn/index.html b/site/arch_postgresql_nspawn/index.html
index 57b120f..a56755d 100644
--- a/site/arch_postgresql_nspawn/index.html
+++ b/site/arch_postgresql_nspawn/index.html
@@ -64,6 +64,11 @@
Debian Nspawn Container On Arch For Testing Apache Configurations
+
+
+
+
+
+
+
+
+
+
Debian Nspawn Container On Arch For Testing Apache Configurations
+
Begin by exporting the environmental variable for your squid cacheing
+proxy. If you're deboostrapping Debian file systems, the best way to
+speed this up is with squid.
+
The ArchWiki page for nspawn containers has a
+Debian/Ubuntu subsection
+Obviously you're going to want to install debootstrap and debian-archive-keyring.
+
# to create a Stretch Container
+cd /var/lib/machines
+mkdir <container name>
+deboostrap stretch <container name>
+
+
+
After some experimentation, perhaps this is the best time to write
+the intended hostname into the container, and write any
+apt-cacher or apt-cacher-ng proxies into /etc/apt/apt.conf
+on the container.
And then start the container, and set the root password.
+
# boot in interactive mode
+systemd-nspawn -D <container name>
+# set the passwd and logout
+password
+logout
+
+
+
Now we can boot the container in non-interactive mode, either
+from the command line or using nspawn files. In either case
+double check that the your bind mounts have the correct permissions
+from inside the container.
+
# for instance attached to a bridge interface br0
+systemd-nspawn -b -D <container name> --network-bridge=br0
+# or if you've set up a package cache
+systemd-nspawn -b -D <container name> --network-bridge=br0 --bind=/var/cache/apt/archives
+
+
+
Alternately, if you use an nspawn file, then you can use a command
+similar to the following to start it, you'll first need to
+boot the container from the command line and install dbus,
+because machinectl shell and machinectl login won't work
+without dbus. In this case use the following sequence of commands.
+
# start the container and login as root
+systemd-nspawn -b -D <container name> --network-bridge=br0
+# bring up networking so you can install dbus
+# this is also a good time to install and configure locale
+apt install dbus locales
+# to configure locale
+dpkg-reconfigure locales
+poweroff
+
+
+
After this you can start the container with systemd, when
+using an nspawn file.
# apache2 will immediately be listening on port 80
+tasksel install web-server
+# enable mod ssl
+a2enmod ssl ; systemctl restart apache2
+# enable the default ssl test page
+a2ensite /etc/apache2/sites-available/default-ssl.conf
+
+
+
You'll be up and running with the default self-signed certs.
@@ -186,5 +192,5 @@
diff --git a/site/mkdocs/search_index.json b/site/mkdocs/search_index.json
index 3d41a9b..86bbcdc 100644
--- a/site/mkdocs/search_index.json
+++ b/site/mkdocs/search_index.json
@@ -2,7 +2,7 @@
"docs": [
{
"location": "/",
- "text": "Welcome to Trent Docs\n\n\nGit Repo For These Docs\n\n\nObviously, the commit history will reflect the time when these documents are written.\n\n\n\n\nServe And Share Apps From Your Phone With Fdroid\n\n\nNspawn Containers\n\n\nDynamic Cacheing Nginx Reverse Proxy For Pacman\n\n\nQuick Dirty Redis Nspawn Container on Arch Linux\n\n\nQuick Dirty Postgresql Nspawn Container on Arch Linux\n\n\nSelf Signed Certs",
+ "text": "Welcome to Trent Docs\n\n\nGit Repo For These Docs\n\n\nObviously, the commit history will reflect the time when these documents are written.\n\n\n\n\nServe And Share Apps From Your Phone With Fdroid\n\n\nNspawn Containers\n\n\nDebian Nspawn Container On Arch For Testing Apache Configurations\n\n\nDynamic Cacheing Nginx Reverse Proxy For Pacman\n\n\nQuick Dirty Redis Nspawn Container on Arch Linux\n\n\nQuick Dirty Postgresql Nspawn Container on Arch Linux\n\n\nSelf Signed Certs",
"title": "Home"
},
{
@@ -12,7 +12,7 @@
},
{
"location": "/#git-repo-for-these-docs",
- "text": "Obviously, the commit history will reflect the time when these documents are written. Serve And Share Apps From Your Phone With Fdroid Nspawn Containers Dynamic Cacheing Nginx Reverse Proxy For Pacman Quick Dirty Redis Nspawn Container on Arch Linux Quick Dirty Postgresql Nspawn Container on Arch Linux Self Signed Certs",
+ "text": "Obviously, the commit history will reflect the time when these documents are written. Serve And Share Apps From Your Phone With Fdroid Nspawn Containers Debian Nspawn Container On Arch For Testing Apache Configurations Dynamic Cacheing Nginx Reverse Proxy For Pacman Quick Dirty Redis Nspawn Container on Arch Linux Quick Dirty Postgresql Nspawn Container on Arch Linux Self Signed Certs",
"title": "Git Repo For These Docs"
},
{
@@ -180,6 +180,16 @@
"text": "You can start/stop nspawn containers with machinectl command. You can start nspawn containers with systemd-nspawn command. You can configure the systemd service for a container with @nspawn.service file override Or you can configure an nspawn container with a dot.nspawn file But in regards to the above list\nI have noticed differences in behaviour,\nin some scenarios, concerning file attributes\nfor bind mounts. Another curiosity: when you have nspawn containers natted on VirtualEthernet connections,\nthey might be able to ping each other at 10.x.y.z, but not resolve each other. But they might\nbe able to resolve each other if they are all connected to the same bridge interface or nspawn\nnetwork zone, but will randomly resolve each other in any of the 10.x.y.z, 169.x.y.z,\nor fe80::....:....:....%host (ipv6 local) spaces, which would complicate configuring the containers\nto talk to each other. But I intend to look into this some more.",
"title": "Final Observations"
},
+ {
+ "location": "/debian_nspawn_container_on_arch_for_testing_apache_configurations/",
+ "text": "Debian Nspawn Container On Arch For Testing Apache Configurations\n\n\nBegin by exporting the environmental variable for your squid cacheing \nproxy. If you're deboostrapping Debian file systems, the best way to\nspeed this up is with squid.\n\n\nThe ArchWiki page for nspawn containers has a\n\nDebian/Ubuntu subsection\n\nObviously you're going to want to install debootstrap and debian-archive-keyring.\n\n\n# to create a Stretch Container\ncd /var/lib/machines \nmkdir \ndeboostrap stretch \n\n\n\n\nAfter some experimentation, perhaps this is the best time to write\nthe intended hostname into the container, and write any\napt-cacher or apt-cacher-ng proxies into /etc/apt/apt.conf \non the container.\n\n\ncp apt.conf /etc/apt/apt.conf \necho \"\" > /var/lib/machines//etc/hostname\n\n\n\n\nAnd then start the container, and set the root password.\n\n\n# boot in interactive mode\nsystemd-nspawn -D \n# set the passwd and logout\npassword \nlogout \n\n\n\n\nNow we can boot the container in non-interactive mode, either\nfrom the command line or using nspawn files. In either case \ndouble check that the your bind mounts have the correct permissions \nfrom inside the container.\n\n\n# for instance attached to a bridge interface br0 \nsystemd-nspawn -b -D --network-bridge=br0\n# or if you've set up a package cache \nsystemd-nspawn -b -D --network-bridge=br0 --bind=/var/cache/apt/archives\n\n\n\n\nAlternately, if you use an nspawn file, then you can use a command \nsimilar to the following to start it, you'll first need to \nboot the container from the command line and install dbus,\nbecause \nmachinectl shell\n and \nmachinectl login\n won't work \nwithout dbus. In this case use the following sequence of commands.\n\n\n# start the container and login as root\nsystemd-nspawn -b -D --network-bridge=br0 \n# bring up networking so you can install dbus\n# this is also a good time to install and configure locale\napt install dbus locales \n# to configure locale \ndpkg-reconfigure locales \npoweroff\n\n\n\n\nAfter this you can start the container with systemd, when \nusing an nspawn file.\n\n\nsystemctl start systemd-nspawn@\n\n\n\n\n# /etc/systemd/nspawn/.spawn \n[Files] \n# Bind=/var/cache/apt/archives \n\n[Network] \nbridge=br0 \n\n\n\n\nYou can use tasksel to install a web-server.\n\n\n# apache2 will immediately be listening on port 80\ntasksel install web-server\n# enable mod ssl\na2enmod ssl ; systemctl restart apache2\n# enable the default ssl test page \na2ensite /etc/apache2/sites-available/default-ssl.conf\n\n\n\n\nYou'll be up and running with the default self-signed certs.",
+ "title": "Debian Nspawn Container On Arch For Testing Apache Configurations"
+ },
+ {
+ "location": "/debian_nspawn_container_on_arch_for_testing_apache_configurations/#debian-nspawn-container-on-arch-for-testing-apache-configurations",
+ "text": "Begin by exporting the environmental variable for your squid cacheing \nproxy. If you're deboostrapping Debian file systems, the best way to\nspeed this up is with squid. The ArchWiki page for nspawn containers has a Debian/Ubuntu subsection \nObviously you're going to want to install debootstrap and debian-archive-keyring. # to create a Stretch Container\ncd /var/lib/machines \nmkdir \ndeboostrap stretch After some experimentation, perhaps this is the best time to write\nthe intended hostname into the container, and write any\napt-cacher or apt-cacher-ng proxies into /etc/apt/apt.conf \non the container. cp apt.conf /etc/apt/apt.conf \necho \"\" > /var/lib/machines//etc/hostname And then start the container, and set the root password. # boot in interactive mode\nsystemd-nspawn -D \n# set the passwd and logout\npassword \nlogout Now we can boot the container in non-interactive mode, either\nfrom the command line or using nspawn files. In either case \ndouble check that the your bind mounts have the correct permissions \nfrom inside the container. # for instance attached to a bridge interface br0 \nsystemd-nspawn -b -D --network-bridge=br0\n# or if you've set up a package cache \nsystemd-nspawn -b -D --network-bridge=br0 --bind=/var/cache/apt/archives Alternately, if you use an nspawn file, then you can use a command \nsimilar to the following to start it, you'll first need to \nboot the container from the command line and install dbus,\nbecause machinectl shell and machinectl login won't work \nwithout dbus. In this case use the following sequence of commands. # start the container and login as root\nsystemd-nspawn -b -D --network-bridge=br0 \n# bring up networking so you can install dbus\n# this is also a good time to install and configure locale\napt install dbus locales \n# to configure locale \ndpkg-reconfigure locales \npoweroff After this you can start the container with systemd, when \nusing an nspawn file. systemctl start systemd-nspawn@ # /etc/systemd/nspawn/.spawn \n[Files] \n# Bind=/var/cache/apt/archives \n\n[Network] \nbridge=br0 You can use tasksel to install a web-server. # apache2 will immediately be listening on port 80\ntasksel install web-server\n# enable mod ssl\na2enmod ssl ; systemctl restart apache2\n# enable the default ssl test page \na2ensite /etc/apache2/sites-available/default-ssl.conf You'll be up and running with the default self-signed certs.",
+ "title": "Debian Nspawn Container On Arch For Testing Apache Configurations"
+ },
{
"location": "/dynamic_cacheing_nginx_reverse_proxy_for_pacman/",
"text": "Dynamic Cacheing Nginx Reverse Proxy For Pacman\n\n\nYou set up a dynamic cacheing reverse proxy and then you put the ip address or hostname for that server in \n/etc/pacman.d/mirrorlist\n on your client machines.\n\n\nOf course if you want to you can set this up and run it in an\n\nNspawn Container\n.\nThe \nArchWiki Page for pacman tips\n\nmostly spells out what to do, but I want to document\nthe exact steps I would take.\n\n\nAs for how you would run this on a server with other virtual hosts?\nWho cares? That is what is so brilliant about using using an\nnspawn container, in that it behaves like just another\ncomputer on the lan with it's own ip address. But it only does one\nthing, and that's all you have to configure it for.\n\n\nI see no reason to use nginx-mainline instead of stable.\n\n\npacman -S nginx\n\n\n\n\nThe suggested configuration in the Arch Wiki\nis to create a directory \n/srv/http/pacman-cache\n,\nand that seems to work well enough\n\n\nmkdir /srv/http/pacman-cache\n# and then change it's ownershipt\nchown http:http /srv/http/pacman-cache\n\n\n\n\nnginx configuration\n\n\nand then it references an nginx.conf in\n\nthis gist\n,\nbut that is not a complete nginx.conf and so here is a method to get that\nworking as of July 2017 with a fresh install of nginx.\n\n\nYou can start with a default \n/etc/nginx/nginx.conf\n,\nand add the line \ninclude sites-enabled/*;\n\nat the end of the \nhttp\n section.\n\n\n# /etc/nginx/nginx.conf\n#user html;\nworker_processes 1;\n\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n\n#pid logs/nginx.pid;\n\n\nevents {\n worker_connections 1024;\n}\n\n\nhttp {\n include mime.types;\n default_type application/octet-stream;\n\n #log_format main '$remote_addr - $remote_user [$time_local] \"$request\" '\n # '$status $body_bytes_sent \"$http_referer\" '\n # '\"$http_user_agent\" \"$http_x_forwarded_for\"';\n\n #access_log logs/access.log main;\n\n sendfile on;\n #tcp_nopush on;\n\n #keepalive_timeout 0;\n keepalive_timeout 65;\n\n #gzip on;\n\n server {\n listen 80;\n server_name localhost;\n\n #charset koi8-r;\n\n #access_log logs/host.access.log main;\n\n location / {\n root /usr/share/nginx/html;\n index index.html index.htm;\n }\n\n #error_page 404 /404.html;\n\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n\n # proxy the PHP scripts to Apache listening on 127.0.0.1:80\n #\n #location ~ \\.php$ {\n # proxy_pass http://127.0.0.1;\n #}\n\n # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000\n #\n #location ~ \\.php$ {\n # root html;\n # fastcgi_pass 127.0.0.1:9000;\n # fastcgi_index index.php;\n # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;\n # include fastcgi_params;\n #}\n\n # deny access to .htaccess files, if Apache's document root\n # concurs with nginx's one\n #\n #location ~ /\\.ht {\n # deny all;\n #}\n }\n\n\n # another virtual host using mix of IP-, name-, and port-based configuration\n #\n #server {\n # listen 8000;\n # listen somename:8080;\n # server_name somename alias another.alias;\n\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n\n\n # HTTPS server\n #\n #server {\n # listen 443 ssl;\n # server_name localhost;\n\n # ssl_certificate cert.pem;\n # ssl_certificate_key cert.key;\n\n # ssl_session_cache shared:SSL:1m;\n # ssl_session_timeout 5m;\n\n # ssl_ciphers HIGH:!aNULL:!MD5;\n # ssl_prefer_server_ciphers on;\n\n # location / {\n # root html;\n # index index.html index.htm;\n # }\n #}\n include sites-enabled/*;\n\n}\n\n\n\n\nAnd then create the directory \n/etc/nginx/sites-enabled\n\n\nmkdir /etc/nginx/sites-enabled\n\n\n\n\nAnd then create \n/etc/nginx/sites-enabled/proxy_cache.conf\n,\nwhich is \nmostly\n a\n\ncopy-and-paste from this gist\n.\n\n\nNotice the \nserver_name\n. This has to match the entry in\n\n/etc/pacman.d/mirrorlist\n on the client machines you are\nupdating from. If you can use the hostname, great. But if you\nhave to assign static ip addresses and explicitly write the local\nip address instead, then that should match what you write in your mirrorlist.\n\n\nAnd of course your mirrorlist entry\non the client machine, has to preserve the directory scheme.\n\n\n# /etc/pacman.d/mirrorlist\nServer = http://:/archlinux/$repo/os/$arch\n\n\n\n\n# /etc/nginx/sites-enabled/proxy_cache.conf\n# nginx may need to resolve domain names at run time\nresolver 8.8.8.8 8.8.4.4;\n\n# Pacman Cache\nserver\n{\nlisten 80;\nserver_name ; # has to match the entry in mirrorlist on client machine.\nroot /srv/http/pacman-cache;\nautoindex on;\n\n # Requests for package db and signature files should redirect upstream without caching\n # Well that's the default anyway.\n # But what if you're spinning up a lot of nspawn containers, don't want to waste all that bandwidth?\n # I choose to instead run a systemd timer that deletes the *db files once every 15 minutes\n location ~ \\.(db|sig)$ {\n try_files $uri @pkg_mirror;\n # proxy_pass http://mirrors$request_uri;\n }\n\n # Requests for actual packages should be served directly from cache if available.\n # If not available, retrieve and save the package from an upstream mirror.\n location ~ \\.tar\\.xz$ {\n try_files $uri @pkg_mirror;\n }\n\n # Retrieve package from upstream mirrors and cache for future requests\n location @pkg_mirror {\n proxy_store on;\n proxy_redirect off;\n proxy_store_access user:rw group:rw all:r;\n proxy_next_upstream error timeout http_404;\n proxy_pass http://mirrors$request_uri;\n }\n}\n\n# Upstream Arch Linux Mirrors\n# - Configure as many backend mirrors as you want in the blocks below\n# - Servers are used in a round-robin fashion by nginx\n# - Add \"backup\" if you want to only use the mirror upon failure of the other mirrors\n# - Separate \"server\" configurations are required for each upstream mirror so we can set the \"Host\" header appropriately\nupstream mirrors {\nserver localhost:8001;\nserver localhost:8002; # backup\nserver localhost:8003; # backup\n}\n\n# Arch Mirror 1 Proxy Configuration\nserver\n{\nlisten 8001;\nserver_name localhost;\n\n location / {\n proxy_pass http://mirrors.kernel.org$request_uri;\n proxy_set_header Host mirrors.kernel.org;\n }\n}\n\n# Arch Mirror 2 Proxy Configuration\nserver\n{\nlisten 8002;\nserver_name localhost;\n\n location / {\n proxy_pass http://mirrors.ocf.berkeley.edu$request_uri;\n proxy_set_header Host mirrors.ocf.berkeley.edu;\n }\n}\n\n# Arch Mirror 3 Proxy Configuration\nserver\n{\n listen 8003;\n server_name localhost;\n\n location / {\n proxy_pass http://mirrors.cat.pdx.edu$request_uri;\n proxy_set_header Host mirrors.cat.pdx.edu;\n }\n}\n\n\n\n\nsystemd service that cleans the proxy cache\n\n\ndon't enable the service, enable the timer\n\n\nsystemctl enable/start /etc/systemd/system/proxy_cache_clean.timer\n\n\n\n\nKeeps the 2 most recent versions of each package using paccache command.\n\n\n# /etc/systemd/system/proxy_cache_clean.service\n[Unit]\nDescription=Clean The pacman proxy cache\n\n[Service]\nType=oneshot\nExecStart=/usr/bin/find /srv/http/pacman-cache/ -type d -exec /usr/bin/paccache -v -r -k 2 -c {} \\;\nStandardOutput=syslog\nStandardError=syslog\n\n\n\n\nsystemd timer for the systemd service that cleans the proxy cache\n\n\n# /etc/systemd/system/proxy_cache_clean.timer\n[Unit]\nDescription=Timer for clean The pacman proxy cache\n\n[Timer]\nOnBootSec=20min\nOnUnitActiveSec=100h\nUnit=proxy_cache_clean.service\n\n[Install]\nWantedBy=timers.target\n\n\n\n\nsystemd service that deletes the pacman database files from the proxy cache\n\n\ndon't enable the service, enable the timer\n\n\nsystemctl enable/start /etc/systemd/system/proxy_cache_database_clean.timer\n\n\n\n\nYou won't need this if you don't cache the database files. But if you do cache\nthe database files, then you'll just be stuck with old database files, unless\nyou periodically delete them. But I'm not sure about all this, will keep an\neye on things.\n\n\n# /etc/systemd/system/proxy_cache_database_clean.service\n[Unit]\nDescription=Clean The pacman proxy cache database\n\n[Service]\nType=oneshot\nExecStart=/bin/bash -c \"for f in $(find /srv -name *db) ; do rm $f; done\"\nStandardOutput=syslog\nStandardError=syslog\n\n\n\n\nsystemd timer for the systemd service that deletes the pacman database files from the proxy cache\n\n\n# /etc/systemd/system/proxy_cache_database_clean.timer\n[Unit]\nDescription=Timer for clean The pacman proxy cache database\n\n[Timer]\nOnBootSec=10min\nOnUnitActiveSec=15min\nUnit=proxy_cache_database_clean.service\n\n[Install]\nWantedBy=timers.target",
diff --git a/site/nspawn/index.html b/site/nspawn/index.html
index aa31f59..0e53824 100644
--- a/site/nspawn/index.html
+++ b/site/nspawn/index.html
@@ -86,6 +86,11 @@