From 390ec77f4690d97dd0a9846fe89b23c1fafe9175 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Wed, 24 Aug 2022 20:23:30 +0100 Subject: [PATCH] moving from static files to j2 templates --- .../defaults/main-vault.yml | 53 +++++++++++-------- roles/setup_hosted_services/defaults/main.yml | 31 +++++------ .../files/photoprism/docker-compose.yml | 53 ------------------- .../dashboards.j2} | 4 +- .../docker-compose.yml => templates/gitea.j2} | 1 + .../linkding.j2} | 1 + .../templates/mariadb.j2 | 2 +- .../mealie.j2} | 0 .../nextcloud.j2} | 3 +- .../nginx-proxy-manager.j2} | 1 + .../olivetin.j2} | 1 + .../overseerr.j2} | 1 + .../templates/photoprism.j2 | 2 +- .../docker-compose.yml => templates/plex.j2} | 2 +- .../uptime-kuma.j2} | 2 +- .../vpn-stack.j2} | 9 ++-- setup-homelab.yml | 5 ++ 17 files changed, 67 insertions(+), 104 deletions(-) delete mode 100644 roles/setup_hosted_services/files/photoprism/docker-compose.yml rename roles/setup_hosted_services/{files/dashboards/docker-compose.yml => templates/dashboards.j2} (95%) rename roles/setup_hosted_services/{files/gitea/docker-compose.yml => templates/gitea.j2} (99%) rename roles/setup_hosted_services/{files/linkding/docker-compose.yml => templates/linkding.j2} (98%) rename roles/setup_hosted_services/{files/mealie/docker-compose.yml => templates/mealie.j2} (100%) rename roles/setup_hosted_services/{files/nextcloud/docker-compose.yml => templates/nextcloud.j2} (91%) rename roles/setup_hosted_services/{files/nginx-proxy-manager/docker-compose.yml => templates/nginx-proxy-manager.j2} (98%) rename roles/setup_hosted_services/{files/olivetin/docker-compose.yml => templates/olivetin.j2} (98%) rename roles/setup_hosted_services/{files/overseerr/docker-compose.yml => templates/overseerr.j2} (98%) rename roles/setup_hosted_services/{files/plex/docker-compose.yml => templates/plex.j2} (97%) rename roles/setup_hosted_services/{files/uptime-kuma/docker-compose.yml => templates/uptime-kuma.j2} (98%) rename roles/setup_hosted_services/{files/vpn-stack/docker-compose.yml => templates/vpn-stack.j2} (93%) diff --git a/roles/setup_hosted_services/defaults/main-vault.yml b/roles/setup_hosted_services/defaults/main-vault.yml index 4002deb..175af31 100644 --- a/roles/setup_hosted_services/defaults/main-vault.yml +++ b/roles/setup_hosted_services/defaults/main-vault.yml @@ -1,24 +1,31 @@ $ANSIBLE_VAULT;1.1;AES256 -34303937666432373666386464363363616138323364316661303139346439313734653936346661 -3132663235346134336538636365333733333631343237650a386439386338656164396563373639 -33326139656239373133636538643162323930306465626436376237393564303063333731383234 -3363663435623766320a646633643164313630653730643366366533666139626565346139353666 -38613363306531326237646663316131366363323437633436383536633262353365623434633432 -34346538333536343336303635373230323038326162646331666238383363336563353637303130 -38666566666534623837323136383165316135643034373134666265373839646165333663366662 -36636439313639623562663062316462643438303031663065333861626231623132643630353739 -37333735663065366432383139383265666161633466646661656163306635343732613835633165 -39326131333930313830306363343131653632613131613161333235363035663662373036323634 -61316366633666346638616262353234346232366132346266303433653665636136383463613630 -31393263373336376130326237663466653431366330646262363535653862373538366636356534 -66376163316532653038396332316366666136666430613734653535643038653163343838396464 -63616666656538376537653832393665356438316336323865323561303664303730303235326264 -35356338643763303864616238623733663163626633386634326539656433343839363136343865 -33343333623961343338656463386435643165616665313032646365376231646461626533633830 -31623736333863356630623964373565343633393030666161626164656666386163386662636666 -34326537303631393834306165613435616430613931343237383632316533306363303165366233 -30633361373863353366353861666665383562646236643666366336306332666261613462373861 -64353234346137333738336235326230353531613532636664393561393334623064333032323665 -31336134313439656362313166633364303639653866623162393362656661393563386434653134 -63616637656236663632633339613432323335316535663531633639343732306661626565356561 -323064636133396263656461336634336562 +61663635393234373338643564313337353832313533656466623266303965326333353663353336 +3431663531363464626562383135393830353339323764370a303031353864633834346539363832 +33313832616138386365353966333137363937663736306261346136646565653936646332626135 +3538356635613735380a666336356139656466306432636466653630633762323133333936353133 +31616437663332653134363630363961303132653064666436383864613835353437336637353265 +63653963306338363730346139383636643033353835346134363231326264666461303134353432 +62396237316261383061383566616433303833613561383638663361363963326463656461346537 +62383761386266316664666432316664646562316565333330373264373535393035303466613536 +61633565663237373734653062333564653964366234333035393937613139313930363936323963 +31623166313564616362303230386466653831393438616166353666653536393231613565656461 +35313239363563323434626561336363353137643361376437363736613263303738333462323538 +32343230663033646437343937613633623663333339313037393661313938346232346535663935 +30663631326431663838356131346530643930663633306233633135646665313264633436336665 +63626532343763633936313264613836353437356233396161616362323837376166313438353131 +62613064393362616430313935646662316239333332393036303766373837343338623036316539 +34643639666237356536666562376664376637643430663930353337623037373133663961633961 +38623863626265363661333132656662613337613939656365353734326463373833323332323463 +35356334326239313661626462376666626435313565306366333062393433323734326563616261 +65646130626234333039646136646463393365643833306562343165613766636133373463333465 +38316538383964343164323238356461643632346365646536356265353933336466613838623335 +34663630633062346562653964613831333165386538353636313565343536666465366438303136 +65663336303239636239626662323730383834376436636562333164396631323035333862393832 +63646364343564383235376137303031653163393966656264646338366163633931613437393830 +33643935353965393661323837646437306364396633636335346361316339326432306363376432 +66333637336636396536656237623232326539326264363033393334616235626463623435373763 +65396162336430336666373233636138363666613235323565336334353231613263383564633663 +35653433383936623638393032363935666134323833306563393266663933653261383061303036 +37393065643766643336616465663631316130653365366666613333363638663631303363636431 +34333435616435386261383865356166396666633737613763303165396365616635346534616131 +3437323335316432396363353138333163613830623165666666 diff --git a/roles/setup_hosted_services/defaults/main.yml b/roles/setup_hosted_services/defaults/main.yml index 9f594a6..f4370b1 100644 --- a/roles/setup_hosted_services/defaults/main.yml +++ b/roles/setup_hosted_services/defaults/main.yml @@ -1,28 +1,22 @@ --- docker_compose_directory: /etc/docker-compose services: -# - name: gitea -# - name: mealie -# - name: linkding -# - name: overseerr -# - name: nextcloud -# - name: dashboards -# - name: nginx-proxy-manager -# - name: plex -# - name: uptime-kuma -# - name: vpn-stack + - name: gitea + - name: mealie + - name: linkding + - name: overseerr + - name: nextcloud + - name: dashboards + - name: nginx-proxy-manager + - name: plex + - name: uptime-kuma + - name: vpn-stack - name: docker-volume-backup - name: mariadb - name: photoprism docker_networks: - - nextcloud_net - -aws_s3: - s3_url: "l8x8.ie11.idrivee2-6.com" - aws_access_key: "nyNMQ3fRMSV0bA1xw5uV" - region: "us-east-1" - bucket: "backups" + - mariadb_net dashy: destination_dir: /etc/config/dashy @@ -33,3 +27,6 @@ olivetin: destination_dir: /etc/config/olivetin destination_file: config.yml source_file: olivetin/config.yml + +extra_hosts: + - "qnap:192.168.178.42" diff --git a/roles/setup_hosted_services/files/photoprism/docker-compose.yml b/roles/setup_hosted_services/files/photoprism/docker-compose.yml deleted file mode 100644 index 357f5a3..0000000 --- a/roles/setup_hosted_services/files/photoprism/docker-compose.yml +++ /dev/null @@ -1,53 +0,0 @@ -version: '3.5' -services: - photoprism: - image: photoprism/photoprism:latest - container_name: photoprism - restart: unless-stopped - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "2342:2342" # HTTP port (host:container) - environment: - PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_ADMIN_PASSWORD} # INITIAL PASSWORD FOR "admin" USER, MINIMUM 8 CHARACTERS - PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password) - PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional - PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video) - PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip) - PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic - PHOTOPRISM_READONLY: "false" # do not modify originals directory (reduced functionality) - PHOTOPRISM_EXPERIMENTAL: "false" # enables experimental features - PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup - PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server - PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API - PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow - PHOTOPRISM_DISABLE_FACES: "false" # disables face detection and recognition (requires TensorFlow) - PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # disables image classification (requires TensorFlow) - PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW files - PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW files (reduces performance) - PHOTOPRISM_JPEG_QUALITY: 85 # a higher value increases the quality and file size of JPEG images and thumbnails (25-100) - PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow) - PHOTOPRISM_UPLOAD_NSFW: "true" # allows uploads that MAY be offensive (no effect without TensorFlow) - PHOTOPRISM_DATABASE_DRIVER: "mysql" # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance - PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) - PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name - PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name - PHOTOPRISM_DATABASE_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD} # MariaDB or MySQL database user password - PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App" - PHOTOPRISM_SITE_DESCRIPTION: "" # meta site description - PHOTOPRISM_SITE_AUTHOR: "" # meta site author - ## Share hardware devices with FFmpeg and TensorFlow (optional): - devices: - - "/dev/dri:/dev/dri" # Intel QSV - working_dir: "/photoprism" # do not change or remove - volumes: - - "/mnt/hdds/photoprism/originals:/photoprism/originals" # Original media files (DO NOT REMOVE) - - "/mnt/hdds/photoprism/import:/photoprism/import" # *Optional* base folder from which files can be imported to originals - - "/mnt/hdds/photoprism/storage:/photoprism/storage" # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE) - - -networks: - default: - name: nextcloud_net - external: true diff --git a/roles/setup_hosted_services/files/dashboards/docker-compose.yml b/roles/setup_hosted_services/templates/dashboards.j2 similarity index 95% rename from roles/setup_hosted_services/files/dashboards/docker-compose.yml rename to roles/setup_hosted_services/templates/dashboards.j2 index f84d74e..e5e4962 100644 --- a/roles/setup_hosted_services/files/dashboards/docker-compose.yml +++ b/roles/setup_hosted_services/templates/dashboards.j2 @@ -1,3 +1,4 @@ +--- version: '3.5' services: dash-dot: @@ -35,8 +36,7 @@ services: retries: 3 start_period: 40s - extra_hosts: - - "qnap:192.168.178.42" + extra_hosts: {{ extra_hosts }} glances: image: nicolargo/glances:latest-alpine diff --git a/roles/setup_hosted_services/files/gitea/docker-compose.yml b/roles/setup_hosted_services/templates/gitea.j2 similarity index 99% rename from roles/setup_hosted_services/files/gitea/docker-compose.yml rename to roles/setup_hosted_services/templates/gitea.j2 index d098fef..29868d7 100644 --- a/roles/setup_hosted_services/files/gitea/docker-compose.yml +++ b/roles/setup_hosted_services/templates/gitea.j2 @@ -1,3 +1,4 @@ +--- version: "3" services: diff --git a/roles/setup_hosted_services/files/linkding/docker-compose.yml b/roles/setup_hosted_services/templates/linkding.j2 similarity index 98% rename from roles/setup_hosted_services/files/linkding/docker-compose.yml rename to roles/setup_hosted_services/templates/linkding.j2 index 5de089c..67bc0e4 100644 --- a/roles/setup_hosted_services/files/linkding/docker-compose.yml +++ b/roles/setup_hosted_services/templates/linkding.j2 @@ -1,3 +1,4 @@ +--- version: '3' services: linkding: diff --git a/roles/setup_hosted_services/templates/mariadb.j2 b/roles/setup_hosted_services/templates/mariadb.j2 index 790cb60..1d72ec1 100644 --- a/roles/setup_hosted_services/templates/mariadb.j2 +++ b/roles/setup_hosted_services/templates/mariadb.j2 @@ -31,5 +31,5 @@ volumes: networks: default: - name: nextcloud_net + name: mariadb_net external: true diff --git a/roles/setup_hosted_services/files/mealie/docker-compose.yml b/roles/setup_hosted_services/templates/mealie.j2 similarity index 100% rename from roles/setup_hosted_services/files/mealie/docker-compose.yml rename to roles/setup_hosted_services/templates/mealie.j2 diff --git a/roles/setup_hosted_services/files/nextcloud/docker-compose.yml b/roles/setup_hosted_services/templates/nextcloud.j2 similarity index 91% rename from roles/setup_hosted_services/files/nextcloud/docker-compose.yml rename to roles/setup_hosted_services/templates/nextcloud.j2 index abeba30..1f1153a 100644 --- a/roles/setup_hosted_services/files/nextcloud/docker-compose.yml +++ b/roles/setup_hosted_services/templates/nextcloud.j2 @@ -1,3 +1,4 @@ +--- version: '3.2' services: nextcloud: @@ -15,5 +16,5 @@ volumes: networks: default: - name: nextcloud_net + name: mariadb_net external: true diff --git a/roles/setup_hosted_services/files/nginx-proxy-manager/docker-compose.yml b/roles/setup_hosted_services/templates/nginx-proxy-manager.j2 similarity index 98% rename from roles/setup_hosted_services/files/nginx-proxy-manager/docker-compose.yml rename to roles/setup_hosted_services/templates/nginx-proxy-manager.j2 index c27a373..fe358f4 100644 --- a/roles/setup_hosted_services/files/nginx-proxy-manager/docker-compose.yml +++ b/roles/setup_hosted_services/templates/nginx-proxy-manager.j2 @@ -1,3 +1,4 @@ +--- version: "3" services: nginx-proxy-manager: diff --git a/roles/setup_hosted_services/files/olivetin/docker-compose.yml b/roles/setup_hosted_services/templates/olivetin.j2 similarity index 98% rename from roles/setup_hosted_services/files/olivetin/docker-compose.yml rename to roles/setup_hosted_services/templates/olivetin.j2 index ee6cd9f..68d6d58 100644 --- a/roles/setup_hosted_services/files/olivetin/docker-compose.yml +++ b/roles/setup_hosted_services/templates/olivetin.j2 @@ -1,3 +1,4 @@ +--- version: "3.8" services: olivetin: diff --git a/roles/setup_hosted_services/files/overseerr/docker-compose.yml b/roles/setup_hosted_services/templates/overseerr.j2 similarity index 98% rename from roles/setup_hosted_services/files/overseerr/docker-compose.yml rename to roles/setup_hosted_services/templates/overseerr.j2 index 57acec9..7556377 100644 --- a/roles/setup_hosted_services/files/overseerr/docker-compose.yml +++ b/roles/setup_hosted_services/templates/overseerr.j2 @@ -1,3 +1,4 @@ +--- version: "3" services: overseerr: diff --git a/roles/setup_hosted_services/templates/photoprism.j2 b/roles/setup_hosted_services/templates/photoprism.j2 index d793065..0e35496 100644 --- a/roles/setup_hosted_services/templates/photoprism.j2 +++ b/roles/setup_hosted_services/templates/photoprism.j2 @@ -50,5 +50,5 @@ services: networks: default: - name: nextcloud_net + name: mariadb_net external: true diff --git a/roles/setup_hosted_services/files/plex/docker-compose.yml b/roles/setup_hosted_services/templates/plex.j2 similarity index 97% rename from roles/setup_hosted_services/files/plex/docker-compose.yml rename to roles/setup_hosted_services/templates/plex.j2 index 25b69d0..747e09b 100644 --- a/roles/setup_hosted_services/files/plex/docker-compose.yml +++ b/roles/setup_hosted_services/templates/plex.j2 @@ -39,4 +39,4 @@ services: volumes: config: - tautulli_config: \ No newline at end of file + tautulli_config: diff --git a/roles/setup_hosted_services/files/uptime-kuma/docker-compose.yml b/roles/setup_hosted_services/templates/uptime-kuma.j2 similarity index 98% rename from roles/setup_hosted_services/files/uptime-kuma/docker-compose.yml rename to roles/setup_hosted_services/templates/uptime-kuma.j2 index c614c8d..c73b3e5 100644 --- a/roles/setup_hosted_services/files/uptime-kuma/docker-compose.yml +++ b/roles/setup_hosted_services/templates/uptime-kuma.j2 @@ -1,5 +1,5 @@ +--- version: '3.3' - services: uptime-kuma: labels: diff --git a/roles/setup_hosted_services/files/vpn-stack/docker-compose.yml b/roles/setup_hosted_services/templates/vpn-stack.j2 similarity index 93% rename from roles/setup_hosted_services/files/vpn-stack/docker-compose.yml rename to roles/setup_hosted_services/templates/vpn-stack.j2 index 708fe83..78502dc 100644 --- a/roles/setup_hosted_services/files/vpn-stack/docker-compose.yml +++ b/roles/setup_hosted_services/templates/vpn-stack.j2 @@ -1,14 +1,15 @@ +--- version: "3" services: surfshark: image: ilteoood/docker-surfshark container_name: surfshark environment: - - SURFSHARK_USER=${SURFSHARK_USER} - - SURFSHARK_PASSWORD=${SURFSHARK_PASSWORD} + - SURFSHARK_USER={{ vpn.surfshark_username }} + - SURFSHARK_PASSWORD={{ vpn.surfshark_password }} # must specify LAN_NETWORK otherwise you will not be able # to access ports which are exposed here. - - LAN_NETWORK=${LAN_NETWORK} + - LAN_NETWORK={{ vpn.lan_network }} cap_add: - NET_ADMIN devices: @@ -107,4 +108,4 @@ volumes: qbittorrent_config: radarr_config: sonarr_config: - jackett_config: \ No newline at end of file + jackett_config: diff --git a/setup-homelab.yml b/setup-homelab.yml index 3771304..055e326 100644 --- a/setup-homelab.yml +++ b/setup-homelab.yml @@ -5,7 +5,12 @@ - secrets-vault.yml roles: - role: 'roles/setup_users' + tags: ["users"] - role: 'roles/setup_samba' + tags: ["samba"] - role: 'roles/setup_docker' + tags: ["docker"] - role: 'roles/setup_portainer' + tags: ["portainer"] - role: 'roles/setup_hosted_services' + tags: ["services"]