Starting Gogs as a Docker container on startup via systemd
Gogs is that great Github clone which is also available as a docker image. Works perfectly if started by the user but since you probably want to run it on your server and without interruption you can add a systemd script to start up Gogs on boot. My script looks like this:
# /etc/systemd/system/docker.gogs.service [Unit] Description=Gogs container Requires=docker.service Require=postgresql.service After=docker.service After=postgresql.service [Service] Restart=always ExecStart=/usr/bin/docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs ExecStop=/usr/bin/docker stop -t 2 gogs ; /usr/bin/docker rm -f gogs [Install] WantedBy=multi-user.target
This script expects to find
postgres running since those are the two dependencies.
It will always restart if it crashes and run on ports 10022 for ssh and 10088 for http. Data is stored under
/var/data. If the container stops it is immediately purged and restarted.
In order to activate your script you need to:
sudo systemctl enable docker.gogs
You can now either just connect to your
ip:10080 or set up a webserver backproxy so that you can easily integrate your service with other web services.