{"id":13618225,"url":"https://github.com/smellouk/Dockerized.Home-Server","last_synced_at":"2025-04-14T10:31:15.790Z","repository":{"id":82243546,"uuid":"267020650","full_name":"smellouk/Dockerized.Home-Server","owner":"smellouk","description":"Dockerized.Home-Server is a setup which provides a dockerized home server, dns server, ad blocking server , cloud and monitoring.","archived":false,"fork":false,"pushed_at":"2020-09-23T19:26:57.000Z","size":1937,"stargazers_count":22,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-08T03:36:39.385Z","etag":null,"topics":["adguardhome","container","docker","grafana","heimdall","home-server","media-server","nextcloud","organizr","portainer","prometheus","radarr","sonarr","ssl","traefik"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smellouk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-26T11:07:43.000Z","updated_at":"2024-08-23T16:07:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf3e64a6-fadf-4bd6-ac88-8be0848276c5","html_url":"https://github.com/smellouk/Dockerized.Home-Server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smellouk%2FDockerized.Home-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smellouk%2FDockerized.Home-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smellouk%2FDockerized.Home-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smellouk%2FDockerized.Home-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smellouk","download_url":"https://codeload.github.com/smellouk/Dockerized.Home-Server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248862610,"owners_count":21173838,"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":["adguardhome","container","docker","grafana","heimdall","home-server","media-server","nextcloud","organizr","portainer","prometheus","radarr","sonarr","ssl","traefik"],"created_at":"2024-08-01T20:01:56.585Z","updated_at":"2025-04-14T10:31:13.101Z","avatar_url":"https://github.com/smellouk.png","language":"Shell","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# Dockerized Home Server\n\nIs a set of docker compose to create home server which provides:\n- Reverse proxy to use local domain name to access to your different services\n- DNS resolver + Ad blocker\n- Web space for your different web applications\n- Container manager\n- Media manager solution\n- Resources Monitoring solution\n- HTTPS/SSL\n- A suite of client-server software for creating and using file hosting services.\n\n![Heimdall!](screenshot.png)\n![Nextcloud!](screenshot2.png)\n\n## Goto\n- [Requirements](#requirements)\n- [Optionals](#optionals)\n- [Used Containers](#used-Containers)\n- [SSL/HTTPS](#sslhttps)\n    - [Setup your resolver ](#setup-your-resolver)\n    - [Setup a local Root CA](#setup-a-local-root-ca)\n    - [Setup a Traefik container with https](#setup-a-traefik-container-with-https)\n    - [Nextcloud with https](#nextcloud-with-https)\n- [Compose](#compose)\n    - [Windows](#windows)\n    - [Ubuntu or MacOS](#ubuntu-or-macos)\n- [File sharing](#file-sharing)\n- [Media Clients](#media-clients)\n- [Planing](#planing)\n- [FAQ or issues](#faq-or-issues)\n\n## Requirements:\n- [Docker](https://docs.docker.com/get-docker/)\n- [Docker compose](https://docs.docker.com/compose/install/)\n- At least 4GB of RAM\n- At least 2 dedicated CPU cores for your docker\n\n## Optionals\nIf you are willing to access to your services using the generated domain on your host machine then you need to edit your hosts file to support local domain name resolving:\n- Linux or MacOS: `/etc/hosts`\n- Windows: `c:\\windows\\system32\\drivers\\etc\\hosts`\n```\n# Network\n127.0.0.1       YOUR_DOMAIN.com\n127.0.0.1       traefik.YOUR_DOMAIN.com\n127.0.0.1       adguard.YOUR_DOMAIN.com\n127.0.0.1       nautilus.YOUR_DOMAIN.com\n\n# Container Manager\n127.0.0.1       portainer.YOUR_DOMAIN.com\n# Media\n127.0.0.1       jackett.YOUR_DOMAIN.com\n127.0.0.1       sonarr.YOUR_DOMAIN.com\n127.0.0.1       radarr.YOUR_DOMAIN.com\n127.0.0.1       bazarr.YOUR_DOMAIN.com\n\n# Monitoring\n127.0.0.1       prometheus.YOUR_DOMAIN.com\n127.0.0.1       alertmanager.YOUR_DOMAIN.com\n127.0.0.1       pushgateway.YOUR_DOMAIN.com\n127.0.0.1       grafana.YOUR_DOMAIN.com\n\n#Cloud\n127.0.0.1       cloud.YOUR_DOMAIN.com\n127.0.0.1       collabora.YOUR_DOMAIN.com\n```\n\n## Used Containers\n- Network\n    - [Traefik](https://hub.docker.com/_/traefik)\n    - [Adguard](https://hub.docker.com/r/adguard/adguardhome)\n    - [Heimdall](https://hub.docker.com/r/linuxserver/heimdall/)\n    - [Static-Files](https://hub.docker.com/r/halverneus/static-file-server)\n- Container Manager\n    - [Portainer](https://hub.docker.com/r/portainer/portainer/)\n- Media\n    - [Jackett](https://hub.docker.com/r/linuxserver/jackett/)\n    - [Sonarr](https://hub.docker.com/r/linuxserver/sonarr/)\n    - [Radarr](https://hub.docker.com/r/linuxserver/radarr/)\n    - [Bazarr](https://hub.docker.com/r/linuxserver/bazarr)\n- Monitoring (Config from [DockerProm](https://github.com/stefanprodan/dockprom))\n    - [Grafana](https://hub.docker.com/r/grafana/grafana/)\n    - [Prometheus Pushgateway](https://hub.docker.com/r/prom/pushgateway)\n    - [AlterManager](https://hub.docker.com/r/prom/alertmanager/)\n    - [Prometheus](https://hub.docker.com/r/prom/prometheus/)\n    - [Node-Exporter](https://hub.docker.com/r/prom/node-exporter/)\n    - [cAdvisor](https://github.com/google/cadvisor)\n- Cloud\n    - [Redis](https://hub.docker.com/_/redis)\n    - [Postgres](https://hub.docker.com/_/postgres)\n    - [Nextcloud](https://hub.docker.com/_/nextcloud)\n    - [Collabora/Code](https://hub.docker.com/r/collabora/code)\n\n## SSL/HTTPS\nThis section: \n- does not cover SSL for windows\n- cover only local self signed certificate based on [mkcert](https://github.com/FiloSottile/mkcert)\n- all thx go to [traefik-local](https://github.com/SushiFu/traefik-local)\n\n### Setup your resolver \nLet's asume your top level domain name is `com` \u0026\u0026 `lan`\n```sh\n# To take into account our local docker resolver\nsudo mkdir -p /etc/resolver\necho \"your_name_server 127.0.0.1\" | sudo tee -a /etc/resolver/com \u003e /dev/null\necho \"your_name_server 127.0.0.1\" | sudo tee -a /etc/resolver/lan \u003e /dev/null\n```\n\n### Setup a local Root CA\n#### MacOS\n```sh\nbrew install mkcert\nbrew install nss # only if you use Firefox\n\n# Setup the local Root CA\nmkcert -install\n```\n\n#### Ubuntu\n```sh\napt install libnss3-tools -y\nwget https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64\nmv mkcert-v1.4.1-linux-amd64 mkcert\nchmod +x mkcert\nmv mkcert /usr/local/bin/\nmkcert -install\n```\n\n### Setup a Traefik container with https\n```sh\nmkdir ./data/network/traefik/certs\ncd ./data/network/traefik/certs\nmkcert -cert-file local.crt -key-file local.key \"YOUR_DOMAIN.com\" \"*.YOUR_DOMAIN.com\" \"YOUR_DOMAIN.lan\" \"*.YOUR_DOMAIN.lan\"\n```\n\n### Nextcloud with https\nTo use SSL with Nextcloud you will need to copy CA root certificate to docker files working directory :  \nRun: \n```shell\ncp /home/YOUR_USERNAME/.local/share/mkcert/rootCA.pem ./dockerfiles/nextcloud/rootCA.crt\n```\n\n## Compose\nFirst you need to provide your configuration.\nCreate or edit `.env` file(for reference check `.sample.env`):\n```\n# Network\nDOMAIN=\"YOUR_DOMAIN\"\nBASIC_AUTH_USER=\"YOUR_HT_PASSWD\"\nTRAEFIK_PORT=\"YOUR_TRAEFIK_PORT\"\nADGUARD_PORT=\"YOUR_ADGUARD_PORT\"\nHEIMDALL_PORT=\"YOUR_HEIMDALL_PORT\"\nDNS1=\"YOUR_DNS1\"\nDNS2=\"YOUR_DNS2\"\nROUTER_URL=\"YOUR_ROUTER_URL\"\nNAUTILUS_PORT=\"YOUR_NAUTILUS_PORT\"\n\n# Container manager\nPORTAINER_PORT=\"YOUR_PORTAINER_PORT\"\n\n# Media\nDOWNLOAD_PATH=\"YOUR_DOWNLOAD_PATH\"\nTV_PATH=\"YOUR_TV_PATH\"\nMOVIE_PATH=\"YOUR_MOVIE_PATH\"\nJACKETT_PORT=\"YOUR_JACKETT_PORT\"\nSONARR_PORT=\"YOUR_SONARR_PORT\"\nRADARR_PORT=\"YOUR_RADARR_PORT\"\nBAZARR_PORT=\"YOUR_BAZARR_PORT\"\nUTORRENT_URL=\"YOUR_UTORRENT_URL\"\n\n# Monitoring\nADMIN_USER=\"YOUR_ADMIN_USER\"\nADMIN_PASSWORD=\"YOUR_ADMIN_PASSWORD\"\nGRAFANA_PORT=\"YOUR_GRAFANA_PORT\"\nPUSHGATEWAY_PORT=\"YOUR_PUSHGATEWAY_PORT\"\nALERT_MANAGER_PORT=\"YOUR_ALERT_MANAGER_PORT\"\nPROMETHEUS_PORT=\"YOUR_PROMETHEUS_PORT\"\n\n# Cloud\nPOSTGRES_USER=\"YOUR_POSTGRESS_USER\"\nPOSTGRES_PASSWORD=\"YOUR_POSTGRESS_PASSWORD\"\nPOSTGRES_DB=\"YOUR_DB_NAME\"\nREDIS_HOST_PASSWORD=\"YOUR_REDIS_PASSWORD\"\nCOLLABORA_PORT=\"YOUR_COLLABORA_PORT\"\nCOLLABORA_ADMIN=\"YOUR_COLLABORA_USER\"\nCOLLABORA_PASS=\"YOUR_COLLABORA_PASSWORD\"\nNEXTCLOUD_PORT=\"YOUR_NEXTCLOUD_PORT\"\nSMTP_HOST=\"YOUR_SMPT_HOST\" #ex: smtp.gmail.com\nSMTP_PORT=\"YOUR_SMPTY_PORT\" #ex: 465\nSMTP_SECURE=\"YOUR_SMTP_SECURE\" #ex: ssl\nSMTP_AUTHTYPE=\"YOUR_SMTP_LOGINTYPE\" #ex: LOGIN\nSMTP_NAME=\"YOUR_SMPTP_NAME\" #ex: YOUR_USER@gmail.com\nSMTP_PASSWORD=\"YOUR_GMAIL_PASS\"\nMAIL_FROM_ADDRESS=\"YOUR_MAIL_USER\" #ex: YOUR_USER\nMAIL_DOMAIN=\"YOUR_MAIL_DOMAIN\" #ex: gmail.com\n```\n### Windows\nStart composing by running `docker-compose-up.ps1` on powershell.\n\n### Ubuntu or MacOS\nStart composing by running:\n```sh\n./docker-compose-up.sh # this will compose containers using https/ssl\n./docker-compose-up.sh -s false # this will compose containers without https/ssl\n./docker-compose-up.sh -e path/to/your/env # this is if you want to specify another path for your env\n```\n\nTo stop and remove services run:\n```sh\n./docker-compose-down.sh # if your containers are not using https then you need to specify -s false\n```\n** FYI: .sh is also executing another command which will allow containers cloud stack containers to communicate with each other throw Traefik and Adguard **\n\n## File sharing\nYou may need to setup [Samba](https://hub.docker.com/r/dperson/samba/) sever to share you files or not.\n\n## Media Clients\nFor my media clients, I'm using Kodi based on NAS Server.\n\n## Planing\n* Planing to add hassio with default config for the next days(Only for MacOS/Linux).\n\n## FAQ or Issues:\n### I can't access to my services using my domain name !!\nCheck your router for possible DNS binding protection, if it's the case like FritzBox Router then you need to make an exception for your domain.\n\n### I can't run `ps1` file!!\nRun `Set-ExecutionPolicy RemoteSigned` as Admin and follow the instructions.\n\n### Nextcloud is unable to communicate with Collabora/Code !! \nPlease make sure that this command was executed by your shell docker composer `docker-compose-up.sh`:\n```shell\nnetwork_id=$(docker network ls --format \"{{.ID}}\" --filter name=cloud-net)\nsudo iptables -I INPUT 3 -i \"br-$network_id\" -j ACCEPT\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmellouk%2FDockerized.Home-Server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmellouk%2FDockerized.Home-Server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmellouk%2FDockerized.Home-Server/lists"}