https://github.com/hasufell/docker-gentoo-gogs
Easy deployment of gogs on gentoo
https://github.com/hasufell/docker-gentoo-gogs
Last synced: about 2 months ago
JSON representation
Easy deployment of gogs on gentoo
- Host: GitHub
- URL: https://github.com/hasufell/docker-gentoo-gogs
- Owner: hasufell
- Created: 2015-09-12T22:24:39.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-03-04T01:27:56.000Z (about 9 years ago)
- Last Synced: 2025-01-28T18:46:01.209Z (4 months ago)
- Language: Shell
- Homepage: https://hub.docker.com/r/hasufell/gentoo-gogs/
- Size: 11.7 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gogs via Docker
## Concept
* nginx reverse proxy (in docker container), automatically configured (except for the ssl certificates)
* backend gogs instance (in docker container)## Getting the images
Just pull them:
```sh
docker pull hasufell/gentoo-gogs
docker pull hasufell/gentoo-nginx-proxy
```## Configuration
Gogs is configured via the web interface once the instance has started.
In addition, the following environment variables can be passed via `-e` to
`docker run`:
* `VIRTUAL_HOST`: sets the hostname for connecting to the gogs backend server
* `VIRTUAL_PORT`: tells the front proxy on which port to contact the backend server
* `GOGS_SSH_PORT`: this only changes the port of the sshd service, you will still have to adjust it in the web configuration interface (optional, default 22)### Certificates
We need certificates which are named according to the hostname
of the gogs instance (e.g. if you will access gogs via
`https://gogs.foo.com`, then you name your certificates files
`gogs.foo.crt` and `gogs.foo.key`).Just drop these in a directory. We will mount this directory into the
container later.## Running for the first time
Create the volumes. This will create a persistent data volume container.
You should not remove it (keep in mind that this container is not running).
```sh
docker run \
--name=gogs-volumes \
-v /data \
hasufell/gentoo-gogs \
echo gogs-volumes
```Now we start the front proxy.
```sh
docker run -ti -d \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
-v :/etc/nginx/certs \
-p 80:80 \
-p 443:443 \
hasufell/gentoo-nginx-proxy
```Now we can start the gogs instance.
```sh
docker run -ti -d \
--volumes-from gogs-volumes \
--name=gogs \
-e VIRTUAL_HOST= \
-e VIRTUAL_PORT=3000 \
-e GOGS_SSH_PORT= \
-p : \
hasufell/gentoo-gogs
```Note that `VIRTUAL_HOST` and `VIRTUAL_PORT` are __strictly__ necessary,
because they are used by the front proxy to update its configuration
automatically.## Initial web configuration
Make sure:
* `Database Type` is SQLite3
* `Domain` is set to your domain
* `SSH Port` is set to what you specified in `GOGS_SSH_PORT` (or 22 for default)
* `Application URL` is `https:///` (not `http`) _without_ the Port 3000## Update procedure
```sh
docker stop gogs
docker rm gogs
docker pull hasufell/gentoo-gogs
docker run -ti -d \
--volumes-from gogs-volumes \
--name=gogs \
-e VIRTUAL_HOST= \
-e VIRTUAL_PORT=3000 \
-e GOGS_SSH_PORT= \
-p : \
hasufell/gentoo-gogs
```