This repository contains the docker-compose and configuration files for my home cloud setup.
A description can be found on my blog: https://github.com/tbienias/blog/blob/master/posts/home-server.md
- In
.envchangeTRAEFIK_DOMAINto your domain (e.g. mydomain.com). - In
.envchangeTRAEFIK_ACME_EMAILto your Lets Encrypt E-Mail (e.g. myname@gmail.com). - In
.envchangeTRAEFIK_ACME_PROVIDERto your DNS provider - list of possible values here. - In
traefik/traefik.envsetup environment vars according to chosen ACME provider. For example whenTRAEFIK_ACME_PROVIDER=digitaloceanthenDO_AUTH_TOKEN=token_valuehas to be specified. - Make sure that
/opt/traefik/letsencrypt/acme.jsonexists and access rights are set to600. docker network create traefik_netcd traefik && docker-compose up -d
- In
.envchangeGITEA_SSH_PORTto the port on which you want git SSH be available (e.g. 11122). - In
.envchangeGITEA_DATA_DIRto a directory where Gitea stores files (e.g./mnt/data/gitea). - In
gitea/app.inichangeSSH_DOMAINto the domain you want to SSH clone from (e.g. gitea.mydomain.com). - In
gitea/app.inichangeROOT_URLto the one you set in step 3, but prefix with https:// (e.g. https://gitea.mydomain.com). - In
gitea/app.inichangeSSH_PORTto the one you set in step 1 (e.g. 11122). - In
gitea/app.inichangeDOMAINto the one you set in step 3 (e.g. gitea.mydomain.com). - In
gitea/app.inichangeLFS_JWT_SECRETto a large unique string. - In
gitea/app.inichangeSECRET_KEYto a large unique string. - In
gitea/app.inichangeINTERNAL_TOKENto a large unique string. - In
gitea/app.inichangeJWT_SECRETto a large unique string. - Add user for running the Gitea container (e.g. gitea).
- In
gitea/gitea.envchangeUSER_UIDto the user id of user created in step 11. - In
gitea/gitea.envchangeUSER_GIDto the group id of user created in step 11. cd gitea && docker-compose up -d
- In
.envchangeKANBOARD_DATA_DIRto a directory where Kanboard stores data (e.g./mnt/data/kanboard/data). - In
.envchangeKANBOARD_PLUGINS_DIRto a directory where Kanboard stores plugins (e.g./mnt/data/kanboard/plugins). docker volume create kanboard_sslcd kanboard && docker-compose up -d
docker volume create portainer_datacd portainer && docker-compose up -d
- In
.envchangeNC_DATA_DIRto a directory where Nextcloud stores files (e.g./mnt/data/nextcloud/data). - In
nextcloud/nextcloud.envchange MYSQL_PASSWORD to a large unique string. - In
nextcloud/nextcloud.envchange MYSQL_ROOT_PASSWORD to a large unique string. docker volume create nextcloud_appsdocker volume create nextcloud_configdocker volume create nextcloud_htmldocker volume create nextcloud_mysqldocker network create nextcloud_netcd nextcloud && docker-compose up -d
Optional post-processing:
docker exec --user www-data nextcloud php occ config:system:set trusted_domains 0 --value=nextcloud.mydomain.comdocker exec --user www-data nextcloud php occ config:system:set overwriteprotocol --value=https
2FA disable (in case of emergency):
docker exec --user www-data nextcloud php occ config:system:set twofactor_enforced --value=false
- In
teamspeak/teamspeak_db.envchangeMYSQL_ROOT_PASSWORDto a large unique string. - In
teamspeak/teamspeak.envchangeTS3SERVER_DB_PASSWORDto the string you set in step 1. docker volume create teamspeak_datadocker volume create teamspeak_mysqldocker network create teamspeak_netcd teamspeak && docker-compose up -d
MIT
