conf | ||
core@d9ff87a833 | ||
data | ||
logs | ||
sock | ||
tmp | ||
.env | ||
.gitignore | ||
alpine.Containerfile | ||
apache.Containerfile | ||
base.yaml | ||
compose.yaml | ||
cronie.Containerfile | ||
knot.Containerfile | ||
LICENSE.md | ||
nginx.Containerfile | ||
php.Containerfile | ||
README.md | ||
sftpgo.Containerfile | ||
sha256sums | ||
tor.Containerfile |
ServNest setup with Compose
Use with Podman
Preparation
Set the following in ~/.config/containers/containers.conf
(or /etc/containers/containers.conf
):
[containers]
no_hosts=true
knotc --confdb data/knot/confdb conf-import conf/knot.conf
cp data/reg/servnest.test.zone.default data/reg/servnest.test.zone
cp data/reg/test.servnest.test.zone.default data/reg/test.servnest.test.zone
chmod u=rwX,g=rX,o=rX -R conf core
chmod u=rwX,g=rwX,o=rwX logs/sftpgo logs/php sock/php logs/apache logs/nginx sock/tor-client sock/nginx-onion sock/knot data/knot data/knot/confdb data/knot/confdb/*.mdb tmp/nginx tmp/certbot tmp/acme tmp/apache tmp/nginx-run tmp/php data/reg data/reg/*.zone core/db core/db/servnest.db
chmod u=rwX,g=rX,o= sock/tor-control
wget https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/x86_64/alpine-minirootfs-3.21.0-x86_64.tar.gz
wget https://github.com/drakkan/sftpgo/archive/refs/tags/v2.6.4.tar.gz -O sftpgo-v2.6.4.tar.gz
sha256sum -c sha256sums
Build
podman-compose -f base.yaml build alpine # build base image
podman-compose build # build services images
Run
podman-compose up # start containers
podman-compose exec php php /srv/servnest/core/jobs/check.php # test main features
When running up
, the only expected error messages are:
[sftpgo] | WRN provider initialized but data loading failed: stat sftpgo.db: no such file or directory [tor] | [warn] You are running Tor as root. You don't need to, and you probably shouldn't.
Podman Compose 1.2.0 randomly fails to start some services (see issue 921). The workaround is to retry multiple times.
Reset
podman container rm --all
podman image rm --all
podman rm $(podman container list --external -q)
Use with rootless Docker
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Then use the instructions for Podman but replace podman
with docker
in command names.
License
This project is published under the Cooperative Nonviolent Public License No Attributions, version 7 or any later version (CNPL-NAv7+), as found in LICENSE.md
or at https://git.pixie.town/thufie/npl-builder.