2,2 KiB
With Gogs' ability to authenticate over SMTP it is trivial to integrate it with mailcow. Few changes are needed:
1. Open docker-compose.yml
and add Gogs:
gogs-mailcow:
image: gogs/gogs
volumes:
- ./data/gogs:/data
networks:
mailcow-network:
ipv4_address: 172.22.1.123
aliases:
- gogs
ports:
- "${GOGS_SSH_PORT:-50022}:22"
- "${GOGS_WWW_PORT:-50080}:3000"
dns:
- 172.22.1.254
2. Open data/conf/nginx/site.conf
and add in each server{}
block
location /gogs/ {
proxy_pass http://172.22.1.123:3000/;
}
3. Open mailcow.conf
and define ports you want Gogs to open, as well as future database password. Example:
GOGS_WWW_PORT=3000
GOGS_SSH_PORT=4000
DBGOGS=CorrectHorseBatteryStaple
4. Create database and user for Gogs to use.
. ./mailcow.conf
docker-compose exec mysql-mailcow mysql -uroot -p$DBROOT
mysql> CREATE USER gogs IDENTIFIED BY 'CorrectHorseBatteryStaple';
mysql> CREATE DATABASE gogs;
mysql> GRANT ALL PRIVILEGES ON gogs.* to gogs;
5. Run docker-compose up -d
to bring up Gogs container. Verify with curl http://172.22.1.123:3000/
that it is running.
6. Proceed to installer from browser, for the time being using direct url http://${MAILCOW_HOSTNAME}:${GOGS_WWW_PORT}/
, for example http://example.org:3000/
. For database details set 172.22.1.2
as database host, user gogs
, database name gogs
and password as set above
7. Once install is complete, login as admin and in settings - authorization enable SMTP. SMTP Host should be 172.22.1.8
with port 587
. You'll probably want to set Skip TLS Verify
.
8. Edit data/gogs/gogs/conf/app.ini
and set following values. You can consult Gogs cheat sheet for their meaning and other possible values.
[server]
SSH_LISTEN_PORT = 22
SSH_DOMAIN = [domain where ssh is available - used for ssh clone url]
SSH_PORT = [port where ssh is open on host - used for ssh clone url]
ROOT_URL = https://[url]/gogs/
9. Restart Gogs with docker-compose restart gogs-mailcow
. Your users should be able to login with mailcow managed accounts.