{"id":13552563,"url":"https://github.com/tbienias/home_cloud","last_synced_at":"2026-04-03T21:09:23.547Z","repository":{"id":217500445,"uuid":"318865958","full_name":"tbienias/home_cloud","owner":"tbienias","description":"Personal Home Cloud Container Setup.","archived":false,"fork":false,"pushed_at":"2020-12-05T21:47:55.000Z","size":338,"stargazers_count":13,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-03T23:34:58.721Z","etag":null,"topics":["cloud","docker","docker-compose","gitea","kanboard","linux","microservices","nextcloud","portainer","teamspeak","traefik"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tbienias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-12-05T18:56:55.000Z","updated_at":"2024-01-25T23:39:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"d7aa1966-d757-41e3-a568-35a6451183b3","html_url":"https://github.com/tbienias/home_cloud","commit_stats":null,"previous_names":["tbienias/home_cloud"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbienias%2Fhome_cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbienias%2Fhome_cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbienias%2Fhome_cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbienias%2Fhome_cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tbienias","download_url":"https://codeload.github.com/tbienias/home_cloud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933421,"owners_count":20857049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","docker","docker-compose","gitea","kanboard","linux","microservices","nextcloud","portainer","teamspeak","traefik"],"created_at":"2024-08-01T12:02:06.106Z","updated_at":"2026-04-03T21:09:23.155Z","avatar_url":"https://github.com/tbienias.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Personal Home Cloud Container Setup # \n\n## Synopsis ##\n\nThis repository contains the docker-compose and configuration files for\nmy home cloud setup.\n\nA description can be found on my blog: https://github.com/tbienias/blog/blob/master/posts/home-server.md\n\n![](./architecture.png)\n\n## HOWTO ##\n\n### Traefik ###\n\n1. In `.env` change `TRAEFIK_DOMAIN` to your domain (e.g. \u003cspan\u003emydomain.com\u003c/span\u003e).\n2. In `.env` change `TRAEFIK_ACME_EMAIL` to your Lets Encrypt E-Mail (e.g. myname@gmail.com).\n3. In `.env` change `TRAEFIK_ACME_PROVIDER` to your DNS provider -\nlist of possible values [here](https://doc.traefik.io/traefik/https/acme/#providers).\n4. In `traefik/traefik.env` setup environment vars according to chosen ACME provider.\nFor example when `TRAEFIK_ACME_PROVIDER=digitalocean` then `DO_AUTH_TOKEN=token_value`\nhas to be specified.\n5. Make sure that `/opt/traefik/letsencrypt/acme.json` exists and access rights\nare set to `600`.\n6. `docker network create traefik_net`\n7. `cd traefik \u0026\u0026 docker-compose up -d`\n\n### Gitea ###\n\n1. In `.env` change `GITEA_SSH_PORT` to the port on which you want git SSH be\navailable (e.g. 11122).\n2. In `.env` change `GITEA_DATA_DIR` to a directory where Gitea stores files (e.g. `/mnt/data/gitea`).\n3. In `gitea/app.ini` change `SSH_DOMAIN` to the domain you want to SSH clone from (e.g. \u003cspan\u003egitea.mydomain.com\u003c/span\u003e).\n4. In `gitea/app.ini` change `ROOT_URL` to the one you set in step 3, but prefix with https://\n(e.g. https://gitea.mydomain.com).\n5. In `gitea/app.ini` change `SSH_PORT` to the one you set in step 1 (e.g. 11122).\n6. In `gitea/app.ini` change `DOMAIN` to the one you set in step 3 (e.g. \u003cspan\u003egitea.mydomain.com\u003c/span\u003e).\n7. In `gitea/app.ini` change `LFS_JWT_SECRET` to a large unique string.\n8. In `gitea/app.ini` change `SECRET_KEY` to a large unique string.\n9. In `gitea/app.ini` change `INTERNAL_TOKEN` to a large unique string.\n10. In `gitea/app.ini` change `JWT_SECRET` to a large unique string.\n11. Add user for running the Gitea container (e.g. gitea).\n12. In `gitea/gitea.env` change `USER_UID` to the user id of user created in step 11.\n13. In `gitea/gitea.env` change `USER_GID` to the group id of user created in step 11.\n14. `cd gitea \u0026\u0026 docker-compose up -d`\n\n### Kanboard ###\n\n1. In `.env` change `KANBOARD_DATA_DIR` to a directory where Kanboard stores data (e.g. `/mnt/data/kanboard/data`).\n2. In `.env` change `KANBOARD_PLUGINS_DIR` to a directory where Kanboard stores plugins (e.g. `/mnt/data/kanboard/plugins`).\n3. `docker volume create kanboard_ssl`\n4. `cd kanboard \u0026\u0026 docker-compose up -d`\n\n### Portainer ###\n\n1. `docker volume create portainer_data`\n2. `cd portainer \u0026\u0026 docker-compose up -d`\n\n### Nextcloud ###\n\n1. In `.env` change `NC_DATA_DIR` to a directory where Nextcloud stores files (e.g. `/mnt/data/nextcloud/data`).\n2. In `nextcloud/nextcloud.env` change MYSQL_PASSWORD to a large unique string.\n3. In `nextcloud/nextcloud.env` change MYSQL_ROOT_PASSWORD to a large unique string.\n4. `docker volume create nextcloud_apps`\n5. `docker volume create nextcloud_config`\n6. `docker volume create nextcloud_html`\n7. `docker volume create nextcloud_mysql`\n8. `docker network create nextcloud_net`\n9. `cd nextcloud \u0026\u0026 docker-compose up -d`\n\nOptional post-processing:\n\n10. `docker exec --user www-data nextcloud php occ config:system:set trusted_domains 0 --value=nextcloud.mydomain.com`\n11. `docker exec --user www-data nextcloud php occ config:system:set overwriteprotocol --value=https`\n\n2FA disable (in case of emergency):\n\n12. `docker exec --user www-data nextcloud php occ config:system:set twofactor_enforced --value=false`\n\n### TeamSpeak ###\n\n1. In `teamspeak/teamspeak_db.env` change `MYSQL_ROOT_PASSWORD` to a large unique string.\n2. In `teamspeak/teamspeak.env` change `TS3SERVER_DB_PASSWORD` to the string you set in step 1.\n3. `docker volume create teamspeak_data`\n4. `docker volume create teamspeak_mysql`\n5. `docker network create teamspeak_net`\n6. `cd teamspeak \u0026\u0026 docker-compose up -d`\n\n## License ##\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbienias%2Fhome_cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftbienias%2Fhome_cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbienias%2Fhome_cloud/lists"}