├── .ansible-lint ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── app-request-.md │ └── bug_report.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml ├── scripts │ └── notify.py └── workflows │ ├── contributors.yml │ ├── notify.yml │ ├── retry.yml │ ├── sandbox-os.yml │ └── sandbox.yml ├── .gitignore ├── LICENSE.md ├── README.md ├── bin └── git │ ├── hooks-wrapper │ ├── hooks │ └── post-merge-01-alert-to-changes │ └── init-hooks ├── defaults ├── ansible.cfg.default └── settings.yml.default ├── requirements.yml ├── requirements ├── requirements-lint.txt └── requirements-notify.txt ├── roles ├── a_train │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ ├── config.yml │ │ │ └── settings.yml │ └── templates │ │ └── a-train.toml.j2 ├── actualbudget │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── adguardhome │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── AdGuardHome.yaml.js2 ├── adminer │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── airdcpp │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── DCPlusPlus.xml │ │ └── WebServer.xml │ └── tasks │ │ └── main.yml ├── airsonic │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── alltube │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── alternatrr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── apprise │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── archivebox │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── aria2_ng │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── audiobookshelf │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── barcodebuddy │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── beets │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── booksonic │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── bookstack │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── calibre │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── calibre_web │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── changedetection │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── cherry │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── chrome │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── cockpit │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ ├── package.yml │ │ │ ├── systemd.yml │ │ │ └── vm.yml │ └── templates │ │ ├── cockpit.conf.j2 │ │ ├── cockpit.yml.j2 │ │ ├── listen.conf.j2 │ │ └── override.conf.j2 ├── code_server │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ └── legacy.yml ├── codex │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── comicstreamer │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── comixed │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── crafty │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── config.json.j2 ├── dashdot │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── dashy │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── conf.yml.j2 ├── deemix │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── delugevpn │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── discoflix │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── dockwatch │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── docspell │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── doplarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── duplicati │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── elasticsearch │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── embystat │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── epms │ └── tasks │ │ └── main.yml ├── factorio │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── filebot │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── filebrowser │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── settings.yml │ └── templates │ │ └── filebrowser.json.j2 ├── filezilla │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── fireflyiii │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── fireflyiii_importer │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── firefox │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── env.j2 ├── flaresolverr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── forgejo │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── foundry │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── freshrss │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── funkwhale │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── gaps │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── gitea │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── glances_web │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── glances.conf │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ └── settings.yml ├── goaccess │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── goplaxt │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── gotenberg │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── gotify │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── grocy │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── guacamole │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── handbrake │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── healthchecks │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── heimdall │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── hoarder │ └── tasks │ │ └── main.yml ├── homarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── homeassistant │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── configuration.yaml.j2 ├── homebox │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── homepage │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── bookmarks.yaml │ │ ├── services.yaml │ │ └── widgets.yaml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── init.yml │ └── templates │ │ ├── docker.yaml.j2 │ │ └── settings.yaml.j2 ├── immich │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── influxdb │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── influxdb2 │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── invoiceninjav5 │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── in-vhost.conf.j2 │ │ ├── php-cli.ini.j2 │ │ └── php.ini.j2 ├── it_tools │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── jdownloader2 │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── sevenzipjbinding1509.jar │ │ └── sevenzipjbinding1509Linux.jar │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ ├── legacy.yml │ │ └── unzippers.yml ├── jellyseerr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── jellystat │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── joplin │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── karakeep │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── kavita │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── kcptun_client │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── config.json.j2 ├── kcptun_server │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── config.json.j2 ├── kitana │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── koel │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── kometa │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── komga │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── krusader │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── lazylibrarian │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── lgsm │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── linkding │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── linkwarden │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── logarr │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── settings.yml │ └── templates │ │ └── config.json.j2 ├── lunasea │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── main_tag │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── maintainerr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── makemkv │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── maybe_finance │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── maybe_finance_worker │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── mealie │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── medusa │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── meilisearch │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── membarr │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── settings.yml │ └── templates │ │ └── config.ini.j2 ├── minecraft │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── minecraft_bedrock │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── miniflux │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── mkvtoolnix │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── monitorr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── moviematch │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── mqtt │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── mosquitto.conf.j2 ├── mylar3 │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── n8n │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── nabarr │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── config.yml.sample │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ └── settings.yml ├── navidrome │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── nextcloud │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── node_red │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── notifiarr │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── settings.yml │ └── templates │ │ └── notifiarr.conf.j2 ├── olivetin │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── config.yaml.j2 ├── ombi │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── openobserve │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── paperless_ai │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── paperless_ngx │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── pgadmin │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── photoprism │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── phpmyadmin │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── plex_auto_languages │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── config.yaml.j2 ├── plex_dupefinder │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── config.json.j2 │ │ └── plex_dupefinder.j2 ├── plex_meta_manager │ └── tasks │ │ ├── main.yml │ │ └── migration.yml ├── plex_patrol │ ├── tasks │ │ ├── main.yml │ │ └── main2.yml │ └── templates │ │ └── settings.ini.j2 ├── plex_utills │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── plexshare │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── plextraktsync │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── pre-install │ │ │ └── main.yml │ └── templates │ │ └── env.j2 ├── privatebin │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── profilarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── puddletag │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── pufferpanel │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── pyload │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── python_plexlibrary │ ├── files │ │ └── recipes │ │ │ ├── movies_1001_movies_you_must_see_before_you_die.yml │ │ │ ├── movies_anime.yml │ │ │ ├── movies_imdb_top_250.yml │ │ │ ├── movies_kids.yml │ │ │ ├── movies_recommended.yml │ │ │ ├── movies_trending.yml │ │ │ └── tv_trending.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── plexlibrary-cron-helper.sh.j2 │ │ └── plexlibrary.sh.j2 ├── qbit_manage │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── qbittorrentvpn │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ ├── main2.yml │ │ └── subtasks │ │ └── post-install │ │ ├── main.yml │ │ └── settings │ │ └── main.yml ├── rdtclient │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── recyclarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── reposilite │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── requestrr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── resiliosync │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── rflood │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ ├── main2.yml │ │ └── subtasks │ │ ├── post-install │ │ ├── main.yml │ │ └── settings │ │ │ └── main.yml │ │ └── pre-install │ │ └── main.yml ├── rocketchat │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── init-mongo.js ├── sabthrottle │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── pre-install.yml │ └── templates │ │ └── config.json.j2 ├── sanity_check │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ ├── ansible_check.yml │ │ ├── backup_check.yml │ │ ├── repo.yml │ │ ├── saltbox_check.yml │ │ └── touch_logs.yml ├── sarotate │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── config.yml │ └── templates │ │ ├── config.yaml.j2 │ │ └── sarotate.service.j2 ├── semaphoreui │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── settings │ ├── files │ │ └── settings-updater.py │ └── tasks │ │ ├── main.yml │ │ ├── main2.yml │ │ └── subtasks │ │ ├── copy.yml │ │ ├── finish.yml │ │ ├── migrator.yml │ │ ├── migrator │ │ └── all │ │ │ └── migration_01.yml │ │ ├── start.yml │ │ └── updater.yml ├── solr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── speedtest │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── sqlitebrowser │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── sshwifty │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── settings.yml │ └── templates │ │ └── sshwifty.conf.json.j2 ├── stash │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── subtasks │ │ └── auth.yml ├── syncthing │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tandoor │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tauticord │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tdarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tdarr_node │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── teamspeak │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── telegraf │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── telegraf.conf │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── teslamate │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── thelounge │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── threadfin │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tika │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tqm │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── tqm.service.j2 │ │ └── tqm.timer.j2 ├── trackarr │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ └── subtasks │ │ │ └── pre-install.yml │ └── templates │ │ └── config.yaml.j2 ├── traefik_robotstxt │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── transmission │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ ├── main2.yml │ │ └── subtasks │ │ ├── post-install │ │ ├── main.yml │ │ └── settings │ │ │ └── main.yml │ │ └── pre-install │ │ └── main.yml ├── transmissionvpn │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── trilium │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tubearchivist │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── tvheadend │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── unifi │ └── tasks │ │ └── main.yml ├── unifi_network_application │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── init-mongo.js.j2 ├── unmanic │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── uptime_kuma │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── varken │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── config.yml │ │ └── main.yml │ └── templates │ │ └── varken.ini.js2 ├── vaultwarden │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── vaultwarden_env.j2 ├── vnstat │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── watchstate │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── watchtower │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── wikijs │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── wireguard │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── wizarr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── wordpress │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── main.yml │ │ └── main2.yml ├── wrapperr │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── xbackbone │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── xteve │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── yacht │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── your_spotify │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml └── znc │ ├── defaults │ └── main.yml │ └── tasks │ └── main.yml ├── sandbox.yml └── scripts ├── check_missing_entries.sh └── salty-linter.py /.ansible-lint: -------------------------------------------------------------------------------- 1 | exclude_paths: 2 | - .github/ 3 | - .idea/ 4 | - .vscode/ 5 | - bin/ 6 | - defaults/ 7 | - library/ 8 | 9 | offline: False 10 | 11 | mock_modules: 12 | - find_open_port 13 | - saltbox_facts 14 | - qbittorrent_passwd 15 | - migrate_folder 16 | 17 | mock_roles: 18 | - pre_tasks 19 | - user_check 20 | 21 | skip_list: 22 | - braces 23 | - git-latest 24 | - no-changed-when 25 | - ignore-errors 26 | - risky-shell-pipe 27 | - package-latest 28 | - no-handler 29 | - command-instead-of-module 30 | - command-instead-of-shell 31 | - deprecated-command-syntax 32 | - yaml[line-length] 33 | - yaml[truthy] 34 | - schema[tasks] 35 | - name[casing] 36 | - name[template] 37 | - var-naming[no-role-prefix] 38 | - schema[playbook] 39 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [saltydk,maximuskowalski] 2 | custom: ["https://www.paypal.me/saltydk"] 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/app-request-.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'App Request:' 3 | about: template for making an app request 4 | title: "App Request: Name of app" 5 | labels: AppRequest 6 | 7 | --- 8 | 9 | # App name 10 | 11 | **What does it do? Why? Please describe.** 12 | 13 | A clear and concise description of what the app does 14 | 15 | ## Links to further information 16 | 17 | - [ ] Link to project homepage or github 18 | - [ ] Link to documentation 19 | - [ ] Link to installation instructions 20 | - [ ] Link to compose file 21 | - [ ] I have decided to ignore these checkboxes and want this deleted immediately. 22 | 23 | ## What are you willing to do to help? 24 | 25 | - [ ] I will you help with making docs if this gets picked up. 26 | - [ ] I will you help with testing. 27 | - [ ] Other things: 28 | 29 | ## Anything else you would like to add. 30 | 31 | Add any other context or screenshots about the feature request here. 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "BUG: role or description" 5 | labels: bug 6 | 7 | --- 8 | 9 | ## Describe the bug 10 | 11 | A clear and concise description of what the bug is. 12 | 13 | ## To Reproduce 14 | 15 | Steps to reproduce the behavior: 16 | 17 | 1. Go to '...' 18 | 2. Click on '....' 19 | 3. Scroll down to '....' 20 | 4. See error 21 | 22 | **Expected behavior** 23 | 24 | A clear and concise description of what you expected to happen. 25 | 26 | **Screenshots** 27 | 28 | If applicable, add screenshots to help explain your problem. 29 | 30 | **Additional context** 31 | 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | For new roles please include a brief description of what this app does, or what the purpose of this role is. Include a link to the docker container used, the projects home page and a link to the documentation if it exists. 4 | 5 | It would be greatly appreciated if you create a sandbox documentation page yourself and do a PR into the [docs repo](https://github.com/saltyorg/docs). You, as the person creating the role, have presumably used the thing and are presumably familiar with any setup steps required. Anyone else here would need to research that. 6 | 7 | For existing roles, please include a summary of the change and which issue is fixed if any. Please also include relevant motivation and context. List any dependencies that are required for this change. 8 | 9 | # How Has This Been Tested? 10 | 11 | Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration. You can use the checkboxes below or delete them as you wish. 12 | 13 | - [ ] This is not a test I performed 14 | - [ ] I did not read the paragraph above this before checking this box 15 | - [ ] I have now checked three boxes without reading any of the text 16 | - [ ] I have decided to leave these meaningless checkboxes in my pull request as a demonstration that I did not read to the end. 17 | 18 | Please do not leave those four checkboxes in your pull request without editing their contents. 19 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "pip" 4 | directory: "/requirements" 5 | schedule: 6 | interval: "daily" 7 | groups: 8 | ansible: 9 | applies-to: version-updates 10 | update-types: 11 | - "minor" 12 | - "patch" 13 | ansible-security: 14 | applies-to: security-updates 15 | update-types: 16 | - "minor" 17 | - "patch" 18 | - package-ecosystem: 'github-actions' 19 | directory: '/' 20 | schedule: 21 | interval: 'weekly' 22 | groups: 23 | gha: 24 | applies-to: version-updates 25 | update-types: 26 | - "minor" 27 | - "patch" 28 | gha-security: 29 | applies-to: security-updates 30 | update-types: 31 | - "minor" 32 | - "patch" 33 | -------------------------------------------------------------------------------- /.github/workflows/contributors.yml: -------------------------------------------------------------------------------- 1 | name: Add contributors 2 | on: 3 | schedule: 4 | - cron: '20 20 * * *' 5 | 6 | jobs: 7 | add-contributors: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | 12 | - uses: BobAnkh/add-contributors@master 13 | with: 14 | REPO_NAME: 'saltyorg/Saltbox' 15 | CONTRIBUTOR: '### Contributors' 16 | COLUMN_PER_ROW: '6' 17 | ACCESS_TOKEN: ${{ secrets.GH_TOKEN }} 18 | IMG_WIDTH: '100' 19 | FONT_SIZE: '14' 20 | PATH: '/README.md' 21 | COMMIT_MESSAGE: 'docs(README): update contributors' 22 | AVATAR_SHAPE: 'square' 23 | -------------------------------------------------------------------------------- /.github/workflows/notify.yml: -------------------------------------------------------------------------------- 1 | name: Notify 2 | on: 3 | workflow_run: 4 | workflows: ["CI", "CI - Every OS"] 5 | types: 6 | - completed 7 | 8 | permissions: 9 | contents: read 10 | actions: read 11 | 12 | jobs: 13 | notify: 14 | runs-on: ubuntu-24.04 15 | if: github.event.repository.fork == false && (github.event.workflow_run.conclusion == 'success' || (github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt >= 3) || github.event.workflow_run.conclusion == 'cancelled') 16 | steps: 17 | - uses: actions/checkout@v4 18 | 19 | - name: Send notification 20 | env: 21 | GITHUB_TOKEN: ${{ github.token }} 22 | DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} 23 | WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }} 24 | run: python .github/scripts/notify.py 25 | -------------------------------------------------------------------------------- /.github/workflows/retry.yml: -------------------------------------------------------------------------------- 1 | name: Retry Workflow 2 | 3 | on: 4 | workflow_run: 5 | workflows: ["CI", "CI - Every OS"] 6 | types: 7 | - completed 8 | 9 | permissions: 10 | contents: write 11 | actions: write 12 | 13 | jobs: 14 | rerun: 15 | runs-on: ubuntu-latest 16 | if: ${{ github.event.workflow_run.conclusion == 'failure' }} 17 | steps: 18 | - name: Check attempt count 19 | id: check_attempts 20 | env: 21 | GH_TOKEN: ${{ github.token }} 22 | GH_REPO: ${{ github.repository }} 23 | run: | 24 | attempt=$(gh run view ${{ github.event.workflow_run.id }} --json attempt -q ".attempt") 25 | echo "Current attempt: $attempt" 26 | 27 | if [ $attempt -lt 3 ]; then 28 | echo "attempt_allowed=true" >> $GITHUB_OUTPUT 29 | else 30 | echo "attempt_allowed=false" >> $GITHUB_OUTPUT 31 | fi 32 | 33 | - name: rerun ${{ github.event.workflow_run.id }} 34 | if: steps.check_attempts.outputs.attempt_allowed == 'true' 35 | env: 36 | GH_REPO: ${{ github.repository }} 37 | GH_TOKEN: ${{ github.token }} 38 | run: | 39 | gh run watch ${{ github.event.workflow_run.id }} > /dev/null 2>&1 40 | gh run rerun ${{ github.event.workflow_run.id }} --failed 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # MacOS 2 | .DS_Store 3 | 4 | # Python 5 | *.pyc 6 | 7 | # VSCode 8 | .vscode/ 9 | 10 | # Ansible 11 | /*.retry 12 | /.ansible/* 13 | 14 | # Sandbox 15 | /ansible.cfg 16 | /*.yml 17 | !/requirements.yml 18 | !/sandbox.yml 19 | /*.log 20 | /*.log.* 21 | 22 | # Visual Studio 23 | /.vs 24 | -------------------------------------------------------------------------------- /bin/git/hooks-wrapper: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Runs all executable pre-commit-* hooks and exits after, 4 | # if any of them was not successful. 5 | # 6 | # Based on 7 | # https://github.com/ELLIOTTCABLE/Paws.js/blob/Master/Scripts/git-hooks/chain-hooks.sh 8 | # http://osdir.com/ml/git/2009-01/msg00308.html 9 | # 10 | # assumes your scripts are located at /bin/git/hooks 11 | 12 | exitcodes=() 13 | hookname=`basename $0` 14 | # our special hooks folder 15 | CUSTOM_HOOKS_DIR=$(git rev-parse --show-toplevel)/bin/git/hooks 16 | # find gits native hooks folder 17 | NATIVE_HOOKS_DIR=$(git rev-parse --show-toplevel)/.git/hooks 18 | 19 | # Run each hook, passing through STDIN and storing the exit code. 20 | # We don't want to bail at the first failure, as the user might 21 | # then bypass the hooks without knowing about additional issues. 22 | 23 | for hook in $CUSTOM_HOOKS_DIR/$(basename $0)-*; do 24 | test -x "$hook" || continue 25 | out=`$hook "$@"` 26 | exitcodes+=($?) 27 | echo "$out" 28 | done 29 | 30 | # check if there was a local hook that was moved previously 31 | if [ -f "$NATIVE_HOOKS_DIR/$hookname.local" ]; then 32 | out=`$NATIVE_HOOKS_DIR/$hookname.local "$@"` 33 | exitcodes+=($?) 34 | echo "$out" 35 | fi 36 | 37 | # If any exit code isn't 0, bail. 38 | for i in "${exitcodes[@]}"; do 39 | [ "$i" == 0 ] || exit $i 40 | done 41 | -------------------------------------------------------------------------------- /bin/git/hooks/post-merge-01-alert-to-changes: -------------------------------------------------------------------------------- 1 | echo "**************************************************" 2 | echo "* *" 3 | echo "* Please use \"sb update\" instead of git to *" 4 | echo "* update Sandbox. The update script does *" 5 | echo "* other actions such as updating settings *" 6 | echo "* that may cause problems if skipped. *" 7 | echo "* *" 8 | echo "* It would be a good idea for you to run *" 9 | echo "* sb install sandbox-settings *" 10 | echo "* before you try to run any other tags *" 11 | echo "* *" 12 | echo "**************************************************" 13 | -------------------------------------------------------------------------------- /bin/git/init-hooks: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # based on http://stackoverflow.com/a/3464399/1383268 3 | # assumes that the hooks-wrapper script is located at /bin/git/hooks-wrapper 4 | 5 | HOOK_NAMES="applypatch-msg pre-applypatch post-applypatch pre-commit prepare-commit-msg commit-msg post-commit pre-rebase post-checkout post-merge pre-receive update post-receive post-update pre-auto-gc pre-push" 6 | # find git's native hooks folder 7 | REPO_ROOT_DIR=$(git rev-parse --show-toplevel) 8 | HOOKS_DIR=$(git rev-parse --show-toplevel)/.git/hooks 9 | 10 | for hook in $HOOK_NAMES; do 11 | # If the hook already exists, is a file, and is not a symlink 12 | if [ ! -h $HOOKS_DIR/$hook ] && [ -f $HOOKS_DIR/$hook ]; then 13 | mv $HOOKS_DIR/$hook $HOOKS_DIR/$hook.local 14 | fi 15 | # create the symlink, overwriting the file if it exists 16 | # probably the only way this would happen is if you're using an old version of git 17 | # -- back when the sample hooks were not executable, instead of being named ____.sample 18 | ln -s -f $REPO_ROOT_DIR/bin/git/hooks-wrapper $HOOKS_DIR/$hook 19 | done 20 | -------------------------------------------------------------------------------- /defaults/ansible.cfg.default: -------------------------------------------------------------------------------- 1 | [defaults] 2 | inventory = /srv/git/saltbox/inventories/local 3 | roles_path = roles:/srv/git/saltbox/roles:/srv/git/saltbox/resources/roles 4 | filter_plugins = /srv/git/saltbox/filter_plugins 5 | library = /srv/git/saltbox/library 6 | log_path = ./sandbox.log 7 | callbacks_enabled = profile_tasks 8 | interpreter_python = /srv/ansible/venv/bin/python3 9 | remote_tmp = /tmp/ansible 10 | force_color = true -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: 3 | - community.general 4 | - community.docker 5 | - community.mysql 6 | -------------------------------------------------------------------------------- /requirements/requirements-lint.txt: -------------------------------------------------------------------------------- 1 | ansible==11.3.0 2 | ansible-lint==25.1.3 3 | jmespath==1.0.1 4 | -------------------------------------------------------------------------------- /requirements/requirements-notify.txt: -------------------------------------------------------------------------------- 1 | requests==2.32.3 2 | -------------------------------------------------------------------------------- /roles/a_train/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: A-Train # 3 | # Author(s): hackmonker # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Set Default Autoscan instance 17 | ansible.builtin.set_fact: 18 | autoscan_name: "{{ autoscan_instances[0] }}" 19 | when: not autoscan_name is defined 20 | 21 | - name: Import Settings task 22 | ansible.builtin.import_tasks: "subtasks/settings.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/a_train/templates/a-train.toml.j2: -------------------------------------------------------------------------------- 1 | # a-train.toml 2 | [autoscan] 3 | # Replace the URL with your Autoscan URL. 4 | url = "{{ 'http://' + autoscan_docker_networks_alias + ':' + autoscan_web_port }}" 5 | username = "{{ user.name }}" 6 | password = "{{ user.pass }}" 7 | 8 | [drive] 9 | # Path to the Service Account key file, 10 | # relative to the configuration file. 11 | account = "./account.json" 12 | # One or more Shared Drive IDs 13 | drives = ["{{ td_id }}"] 14 | -------------------------------------------------------------------------------- /roles/actualbudget/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Actual Budget # 3 | # Author(s): blekbala # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/adminer/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Adminer # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create Docker container 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 22 | -------------------------------------------------------------------------------- /roles/airdcpp/files/WebServer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /roles/airsonic/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Airsonic # 3 | # Author(s): Superduper09, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/alternatrr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: alternatrr # 3 | # Author(s): TheUltimateC0der, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Alternatrr roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | alternatrr_name: "{{ instance }}" 14 | with_items: "{{ alternatrr_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/apprise/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Apprise # 3 | # Author(s): owine, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/archivebox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Archive Box # 3 | # Author(s): 4everfun, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/audiobookshelf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: audiobookshelf # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/barcodebuddy/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Barcode Buddy # 3 | # Author(s): edzeg # 4 | # URL: https://github.com/Forceu/barcodebuddy # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/booksonic/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Booksonic # 3 | # Author(s): moarbytes, muplah, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/calibre/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Calibre # 3 | # Author(s): Andrew Johnson, -SK, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Calibre roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | calibre_name: "{{ instance }}" 14 | with_items: "{{ calibre_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/calibre_web/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Calibre-Web # 3 | # Author(s): Superduper09, -SK, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/changedetection/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: ChangeDetection.io # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/chrome/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Chrome # 3 | # Author(s): Zuke97 # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | # Repository: https://console.cloud.google.com/artifacts/docker/zenika-hub/us/gcr.io/alpine-chrome/sha256:e38563d4475a3d791e986500a2e4125c9afd13798067138881cf770b1f6f3980;tab=install 10 | --- 11 | - name: Remove existing Docker container 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 13 | 14 | - name: Create directories 15 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 16 | 17 | - name: Create Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 19 | -------------------------------------------------------------------------------- /roles/cockpit/templates/cockpit.conf.j2: -------------------------------------------------------------------------------- 1 | [WebService] 2 | Origins = {{ cockpit_web_url }} 3 | ProtocolHeader = X-Forwarded-Proto 4 | ForwardedForHeader = X-Forwarded-For 5 | AllowUnencrypted = true 6 | -------------------------------------------------------------------------------- /roles/cockpit/templates/cockpit.yml.j2: -------------------------------------------------------------------------------- 1 | http: 2 | routers: 3 | {{ cockpit_name }}-http: 4 | entryPoints: 5 | - "web" 6 | rule: "{{ traefik_host_template }}" 7 | middlewares: 8 | {{ traefik_default_middleware_http.split(',') | to_nice_yaml | trim | indent(8) }} 9 | service: "{{ cockpit_name }}" 10 | {{ cockpit_name }}: 11 | entryPoints: 12 | - "websecure" 13 | rule: "{{ traefik_host_template }}" 14 | middlewares: 15 | {{ traefik_middleware.split(',') | to_nice_yaml | trim | indent(8) }} 16 | service: "{{ cockpit_name }}" 17 | tls: 18 | options: securetls@file 19 | certResolver: {{ cockpit_traefik_certresolver }} 20 | 21 | services: 22 | {{ cockpit_name }}: 23 | loadBalancer: 24 | servers: 25 | - url: "http://172.19.0.1:{{ cockpit_web_port }}" 26 | -------------------------------------------------------------------------------- /roles/cockpit/templates/listen.conf.j2: -------------------------------------------------------------------------------- 1 | [Socket] 2 | ListenStream= 3 | ListenStream=172.19.0.1:{{ cockpit_web_port }} 4 | FreeBind=yes 5 | -------------------------------------------------------------------------------- /roles/cockpit/templates/override.conf.j2: -------------------------------------------------------------------------------- 1 | # /etc/systemd/system/cockpit.service.d/override.conf 2 | ######################################################################### 3 | # Title: Sandbox: Cockpit Override # 4 | # Author(s): CHAIR/Raneydazed # 5 | # URL: https://github.com/saltyorg/Sandbox # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | 11 | [Unit] 12 | After={{ cockpit_service_after }} 13 | Requires={{ cockpit_service_after }} 14 | -------------------------------------------------------------------------------- /roles/codex/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Codex # 3 | # Author(s): CHAIR/Raneydazed # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/comicstreamer/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: comicstreamer # 3 | # Author(s): theotocopulitos, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # Docker Image(s): kalinon/comicstreamer # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/comixed/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: comixed # 3 | # Author(s): theotocopulitos, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # Docker Image(s): comixed/comixed # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/crafty/templates/config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "username": "{{ user.name }}", 3 | "password": "{{ user.pass }}" 4 | } 5 | -------------------------------------------------------------------------------- /roles/dashdot/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: dash. # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/deemix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: deemix # 3 | # Author(s): chazlarson, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/delugevpn/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Deluge VPN # 3 | # Author(s): maximuskowalski, Migz93, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/discoflix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: DiscoFlix # 3 | # Author(s): nickheyer # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/doplarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Doplarr # 3 | # Author(s): Grostim # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Fail when default doplarr.discord_token is specified 11 | ansible.builtin.fail: 12 | msg: "You must specify a Discord bot token in the settings under doplarr.discord_token." 13 | when: (doplarr.discord_token == 'your_discord_bot_token') and 14 | (not continuous_integration) 15 | 16 | - name: Remove existing Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 18 | 19 | - name: Create Docker container 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 21 | -------------------------------------------------------------------------------- /roles/duplicati/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Duplicati # 3 | # Author(s): Derek Z, JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # URL: https://github.com/linuxserver/docker-duplicati # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/elasticsearch/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: elasticsearch # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: "ElasticSearch | Set sysctl 'vm.max_map_count'" 17 | ignore_errors: true 18 | ansible.posix.sysctl: 19 | name: "vm.max_map_count" 20 | value: "{{ elasticsearch_sysctl_vm_max_map_count }}" 21 | state: present 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/factorio/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Factorio # 3 | # Author(s): plebeian # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/filebot/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: FileBot # 3 | # Author(s): atilling, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/filebrowser/templates/filebrowser.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "port": 80, 3 | "baseURL": "", 4 | "address": "", 5 | "log": "stdout", 6 | "database": "/database.db", 7 | "root": "/srv" 8 | } 9 | -------------------------------------------------------------------------------- /roles/firefox/templates/env.j2: -------------------------------------------------------------------------------- 1 | USER_ID={{ uid }} 2 | GROUP_ID={{ gid }} 3 | LANG={{ system_locale }} 4 | TZ={{ tz }} 5 | KEEP_APP_RUNNING=0 6 | APP_NICENESS=0 7 | INSTALL_PACKAGES= 8 | CONTAINER_DEBUG=0 9 | DISPLAY_WIDTH=1920 10 | DISPLAY_HEIGHT=1080 11 | DARK_MODE=1 12 | {% if firefox_web_port != '5800' %} 13 | WEB_LISTENING_PORT={{ firefox_web_port }} 14 | {% endif %} 15 | {% if firefox_vnc_port != '5900' %} 16 | VNC_LISTENING_PORT={{ firefox_vnc_port }} 17 | {% endif %} 18 | ENABLE_CJK_FONT=0 19 | FF_OPEN_URL= 20 | FF_KIOSK=0 21 | FF_PREF_DOWNLOADS=browser.download.dir="{{ firefox_paths_downloads_location }}" 22 | -------------------------------------------------------------------------------- /roles/flaresolverr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Flaresolverr # 3 | # Author(s): Grostim, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create Docker container 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 15 | -------------------------------------------------------------------------------- /roles/foundry/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: FoundryVTT # 3 | # Author(s): Grostim, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/freshrss/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: freshrss # 3 | # Author(s): kxzaon, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/funkwhale/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Funkwhale # 3 | # Author(s): RXWatcher, Superduper09, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/gaps/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: gaps # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/glances_web/tasks/subtasks/settings.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Glances # 3 | # Author(s): Satz, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # GNU General Public License v3.0 # 6 | ######################################################################### 7 | --- 8 | - name: Settings | Check if `{{ glances_web_paths_config_location | basename }}` exists 9 | ansible.builtin.stat: 10 | path: "{{ glances_web_paths_config_location }}" 11 | register: glances_web_config 12 | 13 | - name: Settings | New `{{ glances_web_paths_config_location | basename }}` tasks 14 | when: not glances_web_config.stat.exists 15 | block: 16 | - name: Settings | Import default `{{ glances_web_paths_config_location | basename }}` 17 | ansible.builtin.copy: 18 | src: glances.conf 19 | dest: "{{ glances_web_paths_config_location }}" 20 | owner: "{{ user.name }}" 21 | group: "{{ user.name }}" 22 | mode: "0664" 23 | -------------------------------------------------------------------------------- /roles/goaccess/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: GoAccess # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/goplaxt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: GoPlaxt # 3 | # Author(s): EnorMOZ, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/gotenberg/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Gotenberg # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create Docker container 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 15 | -------------------------------------------------------------------------------- /roles/gotify/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Gotify-server # 3 | # Author(s): Bas, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | ######################################################################### 6 | # GNU General Public License v3.0 # 7 | ######################################################################### 8 | --- 9 | - name: Add DNS record 10 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 11 | vars: 12 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 13 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 14 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 15 | 16 | - name: Remove existing Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 18 | 19 | - name: Create directories 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 21 | 22 | - name: Create Docker container 23 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 24 | -------------------------------------------------------------------------------- /roles/grocy/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Grocy # 3 | # Author(s): edzeg # 4 | # URL: https://grocy.info/ # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/healthchecks/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: healthchecks # 3 | # Author(s): danqbudz, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/heimdall/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Heimdall # 3 | # Author(s): TheBradz, desimaniac, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/hoarder/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Hoarder # 3 | # Author(s): Zuke97 # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | # Repository: https://github.com/hoarder-app/hoarder 10 | --- 11 | - name: "Fail with deprecation warning" 12 | ansible.builtin.fail: 13 | msg: "The 'hoarder' role is deprecated in favour of the 'karakeep' role. The karakeep role will migrate your hoarder appdata to karakeep." 14 | when: not continuous_integration 15 | -------------------------------------------------------------------------------- /roles/homeassistant/templates/configuration.yaml.j2: -------------------------------------------------------------------------------- 1 | 2 | # Loads default set of integrations. Do not remove. 3 | default_config: 4 | 5 | # Add the /tmp folder 6 | homeassistant: 7 | allowlist_external_dirs: 8 | - "/tmp" 9 | 10 | frontend: 11 | themes: !include_dir_merge_named themes 12 | 13 | # Add cloud integration 14 | 15 | cloud: 16 | 17 | # Text to speech 18 | tts: 19 | - platform: google_translate 20 | 21 | # Uncomment below for script automation and scene integration 22 | 23 | # script: !include scripts.yaml 24 | # automation: !include automations.yaml 25 | # scene: !include scenes.yaml 26 | 27 | # Http entry for traefik 28 | http: 29 | use_x_forwarded_for: true 30 | trusted_proxies: 31 | - 172.19.0.0/24 32 | - fd00:dead:beef::/48 33 | -------------------------------------------------------------------------------- /roles/homepage/files/bookmarks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # For configuration options and examples, please see: 3 | # https://gethomepage.dev/configs/bookmarks 4 | 5 | - Saltbox: 6 | - Core Repository: 7 | - abbr: GH 8 | # icon: github.png 9 | href: https://github.com/saltyorg/Saltbox 10 | - Sandbox Repository: 11 | - abbr: GH 12 | # icon: github.png 13 | href: https://github.com/saltyorg/Sandbox 14 | - Sandpit Repository: 15 | - abbr: GH 16 | # icon: github.png 17 | href: https://github.com/saltyorg/Sandpit 18 | - Saltbox Docs: 19 | - abbr: DC 20 | # icon: github.png 21 | href: https://docs.saltbox.dev/ 22 | - Misc: 23 | - /r/selfhosted: 24 | - abbr: RE 25 | # icon: reddit.png 26 | href: https://www.reddit.com/r/selfhosted/ 27 | -------------------------------------------------------------------------------- /roles/homepage/files/widgets.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # For configuration options and examples, please see: 3 | # https://gethomepage.dev/configs/info-widgets/ 4 | 5 | - resources: 6 | cpu: true 7 | memory: true 8 | disk: false 9 | # label: System 10 | 11 | - resources: 12 | disk: /downloads 13 | expanded: false 14 | # label: Downloads 15 | 16 | - search: 17 | provider: google 18 | target: _blank 19 | 20 | - openmeteo: 21 | label: Meteo # optional 22 | latitude: 48.8534100 23 | longitude: 2.3488000 24 | units: metric # or imperial 25 | cache: 5 # Time in minutes to cache API responses, to stay within limits 26 | 27 | - datetime: 28 | text_size: xl 29 | format: 30 | timeStyle: short 31 | hour12: false 32 | 33 | - greeting: 34 | text_size: xl 35 | text: Saltbox 36 | -------------------------------------------------------------------------------- /roles/homepage/templates/docker.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | # For configuration options and examples, please see: 3 | # https://gethomepage.dev/configs/docker/ 4 | 5 | # my-docker: 6 | # socket: /var/run/docker.sock 7 | 8 | my-docker: 9 | host: {{ homepage_name }}-docker-socket-proxy 10 | port: 2375 11 | -------------------------------------------------------------------------------- /roles/homepage/templates/settings.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | # For configuration options and examples, please see: 3 | # https://gethomepage.dev/configs/settings 4 | 5 | providers: 6 | openweathermap: openweathermapapikey 7 | weatherapi: weatherapiapikey 8 | title: Saltbox 9 | # background: /images/background-1.png 10 | backgroundOpacity: 0.3 11 | headerStyle: boxed 12 | base: {{ homepage_web_url }} 13 | # layout: 14 | # Movies and Series Management: 15 | # # icon: /icons/film-solid.png 16 | # style: row 17 | # columns: 4 18 | # Media Server: 19 | # # icon: /icons/play-solid.png 20 | # style: row 21 | # columns: 3 22 | -------------------------------------------------------------------------------- /roles/influxdb/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: InfluxDB # 3 | # Author(s): desimaniac, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Create Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 18 | -------------------------------------------------------------------------------- /roles/influxdb2/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: InfluxDB2 # 3 | # Author(s): desimaniac, kowalski, owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: "Execute InfluxDB2 roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | influxdb2_name: "{{ instance }}" 14 | with_items: "{{ influxdb2_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/influxdb2/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: InfluxDB2 # 3 | # Author(s): desimaniac, kowalski, owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/invoiceninjav5/templates/in-vhost.conf.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | server_name _; 4 | 5 | client_max_body_size 100M; 6 | 7 | root /var/www/app/public/; 8 | index index.php; 9 | 10 | location / { 11 | try_files $uri $uri/ /index.php?$query_string; 12 | } 13 | 14 | location = /favicon.ico { access_log off; log_not_found off; } 15 | location = /robots.txt { access_log off; log_not_found off; } 16 | 17 | location ~* \.pdf$ { 18 | add_header Cache-Control no-store; 19 | } 20 | 21 | location ~ \.php$ { 22 | fastcgi_split_path_info ^(.+\.php)(/.+)$; 23 | fastcgi_pass {{ invoiceninjav5_name }}:9000; 24 | fastcgi_index index.php; 25 | include fastcgi_params; 26 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 27 | fastcgi_param HTTPS 1; 28 | fastcgi_intercept_errors off; 29 | fastcgi_buffer_size 16k; 30 | fastcgi_buffers 4 16k; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /roles/invoiceninjav5/templates/php-cli.ini.j2: -------------------------------------------------------------------------------- 1 | session.auto_start = Off 2 | short_open_tag = Off 3 | 4 | error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED 5 | 6 | ; opcache.enable_cli=1 7 | ; opcache.fast_shutdown=1 8 | ; opcache.memory_consumption=256 9 | ; opcache.interned_strings_buffer=8 10 | ; opcache.max_accelerated_files=4000 11 | ; opcache.revalidate_freq=60 12 | ; # http://symfony.com/doc/current/performance.html 13 | ; realpath_cache_size = 4096K 14 | ; realpath_cache_ttl = 600 15 | 16 | memory_limit = 2G 17 | post_max_size = 60M 18 | upload_max_filesize = 50M 19 | -------------------------------------------------------------------------------- /roles/invoiceninjav5/templates/php.ini.j2: -------------------------------------------------------------------------------- 1 | session.auto_start = Off 2 | short_open_tag = Off 3 | 4 | error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED 5 | 6 | ; opcache.enable=1 7 | ; opcache.preload=/var/www/app/preload.php 8 | ; opcache.preload_user=www-data 9 | 10 | ; ; The OPcache shared memory storage size. 11 | ; opcache.max_accelerated_files=300000 12 | ; opcache.validate_timestamps=1 13 | ; opcache.revalidate_freq=30 14 | ; opcache.jit_buffer_size=256M 15 | ; opcache.jit=1205 16 | ; opcache.memory_consumption=1024M 17 | 18 | 19 | post_max_size = 60M 20 | upload_max_filesize = 50M 21 | memory_limit=512M 22 | -------------------------------------------------------------------------------- /roles/it_tools/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: IT-Tools Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create Docker container 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 22 | -------------------------------------------------------------------------------- /roles/jdownloader2/files/sevenzipjbinding1509.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saltyorg/Sandbox/74cfce39da67569bfb1004c55d8d1afed486b010/roles/jdownloader2/files/sevenzipjbinding1509.jar -------------------------------------------------------------------------------- /roles/jdownloader2/files/sevenzipjbinding1509Linux.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/saltyorg/Sandbox/74cfce39da67569bfb1004c55d8d1afed486b010/roles/jdownloader2/files/sevenzipjbinding1509Linux.jar -------------------------------------------------------------------------------- /roles/jellyseerr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Jellyseerr Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Jellyseerr roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | jellyseerr_name: "{{ instance }}" 14 | with_items: "{{ jellyseerr_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/jellyseerr/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Jellyseerr # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/kavita/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Kavita # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/kcptun_client/templates/config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "target": "127.0.0.1:443", 3 | "listen": "0.0.0.0:29990", 4 | "mode": "fast3", 5 | "crypt": "aes-128", 6 | "key": "my_default_password", 7 | "dscp": 46, 8 | "parityshard": 2, 9 | "datashard": 80, 10 | "mtu": 1400, 11 | "nocomp": true, 12 | "nodelay": 0, 13 | "acknodelay": true, 14 | "interval": 50, 15 | "resend": 0, 16 | "nc": 0, 17 | "keepalive": 10, 18 | "sockbuf": 268435500, 19 | "smuxbuf": 268435500, 20 | "snmpperiod": 60, 21 | "pprof": false, 22 | "conn": 4, 23 | "autoexpire": 0, 24 | "sndwnd": 8192, 25 | "rcvwnd": 16384 26 | } 27 | -------------------------------------------------------------------------------- /roles/kcptun_server/templates/config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "target": "127.0.0.1:443", 3 | "listen": "0.0.0.0:29990", 4 | "mode": "fast3", 5 | "crypt": "aes-128", 6 | "key": "my_default_password", 7 | "dscp": 46, 8 | "parityshard": 2, 9 | "datashard": 80, 10 | "mtu": 1400, 11 | "nocomp": true, 12 | "nodelay": 0, 13 | "acknodelay": true, 14 | "interval": 50, 15 | "resend": 0, 16 | "nc": 0, 17 | "keepalive": 10, 18 | "sockbuf": 268435500, 19 | "smuxbuf": 268435500, 20 | "snmpperiod": 60, 21 | "pprof": false, 22 | "conn": 4, 23 | "autoexpire": 0, 24 | "sndwnd": 16384, 25 | "rcvwnd": 16384 26 | } 27 | -------------------------------------------------------------------------------- /roles/kitana/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: kitana # 3 | # Author(s): 4everfun,kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/kometa/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Kometa # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Kometa roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | kometa_name: "{{ instance }}" 14 | with_items: "{{ kometa_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/komga/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: komga # 3 | # Author(s): theotocopulitos, crowquill # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/lazylibrarian/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: LazyLibrarian # 3 | # Author(s): Superduper09, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/lgsm/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Title: Sandbox: LGSM | Multi-instance Tasks # 3 | # Author(s): scarabyte # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################## 7 | # GNU General Public License v3.0 # 8 | ######################################################################## 9 | --- 10 | - name: Ensure we have instances for lgsm to install 11 | ansible.builtin.assert: 12 | that: 13 | - lgsm_instances is not string 14 | - lgsm_instances is not mapping 15 | - lgsm_instances is iterable 16 | - lgsm_instances | length > 0 17 | fail_msg: >- 18 | LGSM was designed to use multi-instance configuration to install game servers properly. Check out https://docs.saltbox.dev/reference/multiple-instances/ 19 | success_msg: >- 20 | Detected multi-instance configuration. 21 | 22 | - name: "Execute lgsm roles" 23 | ansible.builtin.include_tasks: main2.yml 24 | vars: 25 | lgsm_name: "{{ instance }}" 26 | with_items: "{{ lgsm_instances }}" 27 | loop_control: 28 | loop_var: instance 29 | -------------------------------------------------------------------------------- /roles/lgsm/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Title: Sandbox: LGSM | Deployment Tasks # 3 | # Author(s): scarabyte # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################## 7 | # GNU General Public License v3.0 # 8 | ######################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/linkding/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: linkding # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/logarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Logarr # 3 | # Author(s): Superduper09, Kalroth, RXWatcher, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # GNU General Public License v3.0 # 6 | ######################################################################### 7 | --- 8 | - name: Add DNS record 9 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 10 | vars: 11 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 12 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 13 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 14 | 15 | - name: Remove existing Docker container 16 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 17 | 18 | - name: Create directories 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 20 | 21 | - name: Import Settings task 22 | ansible.builtin.import_tasks: "subtasks/settings.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/logarr/tasks/subtasks/settings.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Logarr # 3 | # Author(s): Superduper09, Kalroth, RXWatcher, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | ######################################################################### 6 | # GNU General Public License v3.0 # 7 | ######################################################################### 8 | --- 9 | - name: Settings | Check if `{{ logarr_paths_config_location | basename }}` exists 10 | ansible.builtin.stat: 11 | path: "{{ logarr_paths_config_location }}" 12 | register: logarr_config 13 | 14 | - name: Settings | New `{{ logarr_paths_config_location | basename }}` tasks 15 | when: not logarr_config.stat.exists 16 | block: 17 | - name: Settings | Import default `{{ logarr_paths_config_location | basename }}` 18 | ansible.builtin.template: 19 | src: config.json.j2 20 | dest: "{{ logarr_paths_config_location }}" 21 | owner: "{{ user.name }}" 22 | group: "{{ user.name }}" 23 | mode: "0664" 24 | -------------------------------------------------------------------------------- /roles/lunasea/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Lunasea # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | # Repository: https://github.com/JagandeepBrar/LunaSea 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/main_tag/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: sandbox_roles tag | Default Variables # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | sandbox_roles: [] 11 | -------------------------------------------------------------------------------- /roles/main_tag/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: sandbox_roles tag # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Sandbox roles" 11 | ansible.builtin.include_role: 12 | name: "{{ sandbox_role }}" 13 | with_items: "{{ sandbox_roles }}" 14 | loop_control: 15 | loop_var: sandbox_role 16 | when: ('sandbox-roles' in ansible_run_tags) 17 | -------------------------------------------------------------------------------- /roles/maintainerr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: maintainerr Role # 3 | # Author(s): maindust # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute maintainerr roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | maintainerr_name: "{{ role }}" 14 | with_items: "{{ maintainerr_instances }}" 15 | loop_control: 16 | loop_var: role 17 | -------------------------------------------------------------------------------- /roles/maintainerr/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: maintainerr # 3 | # Author(s): maindust # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/makemkv/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: makemkv # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/maybe_finance_worker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: maybe_finance_worker # 3 | # Author(s): cartermcalister # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Create Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 18 | -------------------------------------------------------------------------------- /roles/mealie/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Mealie # 3 | # Author(s): Thundernerd, Grostim, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/medusa/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Medusa # 3 | # Author(s): javi11, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | ######################################################################### 6 | # GNU General Public License v3.0 # 7 | ######################################################################### 8 | --- 9 | - name: Add DNS record 10 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 11 | vars: 12 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 13 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 14 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 15 | 16 | - name: Remove existing Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 18 | 19 | - name: Create directories 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 21 | 22 | - name: Create Docker container 23 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 24 | -------------------------------------------------------------------------------- /roles/membarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Membarr # 3 | # Author(s): CHAIR/Raneydazed # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Fail when default membarr.discord_token is specified 11 | ansible.builtin.fail: 12 | msg: "You must specify a Discord bot token in the settings under membarr.discord_token." 13 | when: (membarr.discord_token == 'your_discord_bot_token') and 14 | (not continuous_integration) 15 | 16 | - name: Remove existing Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 18 | 19 | - name: Create directories 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 21 | 22 | - name: Import Settings task 23 | ansible.builtin.import_tasks: "subtasks/settings.yml" 24 | 25 | - name: Create Docker container 26 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 27 | -------------------------------------------------------------------------------- /roles/membarr/templates/config.ini.j2: -------------------------------------------------------------------------------- 1 | [bot_envs] 2 | Discord_bot_token = {{ membarr.discord_token }} 3 | {% if plex_auth_token is defined %} 4 | plex_base_url = {{ plex_web_url }} 5 | plex_token = {{ plex_auth_token }} 6 | plex_server_name = {{ plex_friendly_name }} 7 | plex_user = {{ plex_online_username }} 8 | {% endif %} 9 | plex_pass = 10 | plex_enabled = True 11 | plex_libs = all 12 | plex_roles = Add To Plex 13 | -------------------------------------------------------------------------------- /roles/minecraft/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: Minecraft # 3 | # Author(s): jolbol1, salty # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute minecraft roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | minecraft_name: "{{ instance }}" 14 | with_items: "{{ minecraft_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/minecraft_bedrock/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: minecraft-bedrock # 3 | # Author(s): nickstarkloff # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | ######################################################################### 6 | # GNU General Public License v3.0 # 7 | ######################################################################### 8 | --- 9 | - name: Remove existing Docker container 10 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 11 | 12 | - name: Add DNS record 13 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 14 | vars: 15 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 16 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 17 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 18 | 19 | - name: Create directories 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 21 | 22 | - name: Create Docker container 23 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 24 | -------------------------------------------------------------------------------- /roles/mkvtoolnix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: MKVToolNix # 3 | # Author(s): sevos # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/monitorr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Monitorr # 3 | # Author(s): Superduper09, Kalroth, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # GNU General Public License v3.0 # 6 | ######################################################################### 7 | --- 8 | - name: Add DNS record 9 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 10 | vars: 11 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 12 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 13 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 14 | 15 | - name: Remove existing Docker container 16 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 17 | 18 | - name: Create directories 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 20 | 21 | - name: Create Docker container 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 23 | -------------------------------------------------------------------------------- /roles/mqtt/templates/mosquitto.conf.j2: -------------------------------------------------------------------------------- 1 | persistence true 2 | persistence_location /mosquitto/data/ 3 | log_dest file /mosquitto/log/mosquitto.log 4 | log_type all 5 | listener 1883 6 | allow_anonymous true 7 | -------------------------------------------------------------------------------- /roles/mylar3/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Mylar3 # 3 | # Author(s): theotocopulitos, owine, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # GNU General Public License v3.0 # 6 | ######################################################################### 7 | --- 8 | - name: Add DNS record 9 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 10 | vars: 11 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 12 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 13 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 14 | 15 | - name: Remove existing Docker container 16 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 17 | 18 | - name: Create directories 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 20 | 21 | - name: Create Docker container 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 23 | -------------------------------------------------------------------------------- /roles/nabarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Nabarr # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Import Settings task 17 | ansible.builtin.import_tasks: "subtasks/settings.yml" 18 | 19 | - name: Create Docker container 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 21 | -------------------------------------------------------------------------------- /roles/nabarr/tasks/subtasks/settings.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Nabarr # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Settings | Check if `{{ nabarr_paths_config_location | basename }}` exists 11 | ansible.builtin.stat: 12 | path: "{{ nabarr_paths_config_location }}" 13 | register: nabarr_config 14 | 15 | - name: Settings | New `{{ nabarr_paths_config_location | basename }}` tasks 16 | when: not nabarr_config.stat.exists 17 | block: 18 | - name: Settings | Import default `{{ nabarr_paths_location | basename }}` 19 | ansible.builtin.copy: 20 | src: config.yml.sample 21 | dest: "{{ nabarr_paths_location }}/config.yml.sample" 22 | owner: "{{ user.name }}" 23 | group: "{{ user.name }}" 24 | mode: "0664" 25 | -------------------------------------------------------------------------------- /roles/navidrome/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Navidrome # 3 | # Author(s): finch, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/node_red/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Node-RED Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Node-RED roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | node_red_name: "{{ instance }}" 14 | with_items: "{{ node_red_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/node_red/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sonarr Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/olivetin/templates/config.yaml.j2: -------------------------------------------------------------------------------- 1 | actions: 2 | - title: "Hello world!" 3 | shell: echo 'Hello World!' -------------------------------------------------------------------------------- /roles/ombi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Ombi # 3 | # Author(s): RXWatcher1, l3uddz, desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Ombi roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | ombi_name: "{{ instance }}" 14 | with_items: "{{ ombi_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/ombi/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Ombi # 3 | # Author(s): RXWatcher1, l3uddz, desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/openobserve/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: openobserve # 3 | # Author(s): salty, Thundernerd # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/paperless_ai/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Paperless-AI # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/pgadmin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: PGAdmin # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create a volume 21 | community.docker.docker_volume: 22 | name: "pgadmin" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/phpmyadmin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: phpmyadmin # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # URL: https://hub.docker.com/_/phpmyadmin # 6 | # -- # 7 | ########################################################################## 8 | # GNU General Public License v3.0 # 9 | ########################################################################## 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create Docker container 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 23 | -------------------------------------------------------------------------------- /roles/plex_dupefinder/templates/plex_dupefinder.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | /opt/plex_dupefinder/venv/bin/python3 /opt/plex_dupefinder/plex_dupefinder.py 3 | -------------------------------------------------------------------------------- /roles/plex_meta_manager/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Plex Meta Manager # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "PMM to Kometa Migration" 11 | ansible.builtin.include_tasks: migration.yml 12 | when: (not continuous_integration) and ('pmm-kometa-migration' in ansible_run_tags) 13 | 14 | - name: "Fail with deprecation warning" 15 | ansible.builtin.fail: 16 | msg: "The 'plex-meta-manager' role is deprecated in favor of the 'kometa' role. Run 'sb install sandbox-pmm-kometa-migration' to migrate the appdata from a default Plex Meta Manager install to the default appdata path for Kometa." 17 | when: (not continuous_integration) and ('pmm-kometa-migration' not in ansible_run_tags) 18 | -------------------------------------------------------------------------------- /roles/plex_patrol/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Plex Patrol Role # 3 | # Author(s): l3uddz, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Plex Patrol roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | plex_name: "{{ instance }}" 14 | with_items: "{{ plex_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/plex_utills/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Plex-Utills # 3 | # Author(s): Grostim # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/plextraktsync/templates/env.j2: -------------------------------------------------------------------------------- 1 | PLEX_BASEURL=http://{{ plex_docker_networks_alias }}:{{ plex_web_port }} 2 | PLEX_TOKEN={{ plex_auth_token | d('') }} 3 | PLEX_USERNAME={{ plex_owner_username | d('') | escape }} -------------------------------------------------------------------------------- /roles/profilarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Profilarr | Deployment Tasks # 3 | # Author(s): keldian # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/puddletag/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Puddletag # 3 | # Author(s): CHAIR/Raneydazed # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/pyload/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: pyLoad Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/python_plexlibrary/templates/plexlibrary-cron-helper.sh.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ######################################################################### 3 | # Title: Sandbox: Python-PlexLibrary Cron Helper Script # 4 | # Author(s): desimaniac # 5 | # URL: https://github.com/saltyorg/Sandbox # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | 11 | PATH='/usr/bin:/bin:/usr/local/bin' 12 | export PYTHONIOENCODING=UTF-8 13 | 14 | PYTHON_PATH='{{ python_plexlibrary_bin_folder }}/python3' 15 | LOG_PATH='/opt/python-plexlibrary/plexlibrary-cron.log' 16 | RECIPES_PATH='/opt/python-plexlibrary/recipes' 17 | SCRIPT_PATH='/opt/python-plexlibrary/plexlibrary/plexlibrary.py' 18 | 19 | echo $(date) | tee -a $LOG_PATH 20 | echo "" | tee -a $LOG_PATH 21 | 22 | cd /opt/python-plexlibrary 23 | 24 | for file in $RECIPES_PATH/* 25 | do 26 | if [ -f "${file}" ]; then 27 | $PYTHON_PATH plexlibrary $(basename "$file" .yml) | tee -a $LOG_PATH 28 | echo "" | tee -a $LOG_PATH 29 | fi 30 | done 31 | -------------------------------------------------------------------------------- /roles/python_plexlibrary/templates/plexlibrary.sh.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ######################################################################### 3 | # Title: Sandbox: Python-PlexLibrary Helper Script # 4 | # Author(s): desimaniac # 5 | # URL: https://github.com/saltyorg/Sandbox # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | 11 | PATH='/usr/bin:/bin:/usr/local/bin' 12 | export PYTHONIOENCODING=UTF-8 13 | 14 | PYTHON_PATH='{{ python_plexlibrary_bin_folder }}/python3' 15 | LOG_PATH='/opt/python-plexlibrary/plexlibrary.log' 16 | 17 | echo $(date) | tee -a $LOG_PATH 18 | echo "" | tee -a $LOG_PATH 19 | 20 | (cd /opt/python-plexlibrary && $PYTHON_PATH plexlibrary "$@") 21 | -------------------------------------------------------------------------------- /roles/qbittorrentvpn/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: qbittorrentvpn Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute qBittorrent VPN roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | qbittorrentvpn_name: "{{ instance }}" 14 | with_items: "{{ qbittorrentvpn_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/rdtclient/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: rdtclient # 3 | # Author(s): kxzaon, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/reposilite/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Reposilite # 3 | # Author(s): Derek Z, JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # URL: https://github.com/dzikoysk/reposilite # 6 | # -- # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/requestrr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Requestrr # 3 | # Author(s): nostyle, TABLE272 # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Requestrr roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | requestrr_name: "{{ instance }}" 14 | with_items: "{{ requestrr_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/requestrr/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Requestrr # 3 | # Author(s): nostyle, TABLE272 # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/resiliosync/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: ResilioSync # 3 | # Author(s): JohnClementine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/rflood/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: rflood # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | ######################################################################### 6 | # GNU General Public License v3.0 # 7 | ######################################################################### 8 | --- 9 | - name: "Execute rflood roles" 10 | ansible.builtin.include_tasks: main2.yml 11 | vars: 12 | rflood_name: "{{ instance }}" 13 | with_items: "{{ rflood_instances }}" 14 | loop_control: 15 | loop_var: instance 16 | -------------------------------------------------------------------------------- /roles/rflood/tasks/subtasks/post-install/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: rflood | Post-Install Tasks # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Post-Install | Wait for config files to be created 11 | ansible.builtin.wait_for: 12 | path: "{{ item }}" 13 | state: present 14 | loop: 15 | - "{{ rflood_paths_rtorrent_rc_location }}" 16 | 17 | - name: Post-Install | Wait for 10 seconds 18 | ansible.builtin.wait_for: 19 | timeout: 10 20 | 21 | - name: Post-Install | Stop container 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/stop_docker_container.yml" 23 | 24 | - name: Post-Install | Settings Task 25 | ansible.builtin.import_tasks: "settings/main.yml" 26 | 27 | - name: Post-Install | Start container 28 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/start_docker_container.yml" 29 | -------------------------------------------------------------------------------- /roles/rflood/tasks/subtasks/post-install/settings/main.yml: -------------------------------------------------------------------------------- 1 | #################################################################################### 2 | # Title: Sandbox: rflood | Post-Install | Settings | Existing Installs # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | #################################################################################### 7 | # GNU General Public License v3.0 # 8 | #################################################################################### 9 | --- 10 | - name: Post-Install | Settings | Update 'rtorrent.rc' config settings 11 | community.general.ini_file: 12 | path: "{{ rflood_paths_rtorrent_rc_location }}" 13 | section: null 14 | option: "{{ item.option }}" 15 | value: "{{ item.value }}" 16 | no_extra_spaces: false 17 | state: present 18 | owner: "{{ user.name }}" 19 | group: "{{ user.name }}" 20 | mode: "0664" 21 | loop: "{{ rflood_config_rflood_rc_settings_list }}" 22 | -------------------------------------------------------------------------------- /roles/rflood/tasks/subtasks/pre-install/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: rflood | Pre-Install Tasks # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Pre-Install | Get next available port within the range of '50000-50010' # noqa fqcn[action] 11 | find_open_port: 12 | low_bound: 50000 13 | high_bound: 50010 14 | protocol: tcp 15 | register: port_lookup_50000 16 | ignore_errors: true 17 | 18 | - name: Pre-Install | Get next available port within the range of '6881-6891' # noqa fqcn[action] 19 | find_open_port: 20 | low_bound: 6881 21 | high_bound: 6891 22 | protocol: udp 23 | register: port_lookup_6881 24 | ignore_errors: true 25 | -------------------------------------------------------------------------------- /roles/rocketchat/templates/init-mongo.js: -------------------------------------------------------------------------------- 1 | rs.initiate( 2 | { 3 | _id: "rs0", 4 | version: 1, 5 | members: [ 6 | { _id: 0, host : "localhost:27017" } 7 | ] 8 | } 9 | ) -------------------------------------------------------------------------------- /roles/sabthrottle/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: SabThrottle # 3 | # Author(s): 8a8al00ey # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Pre-Install Tasks 17 | ansible.builtin.include_tasks: "subtasks/pre-install.yml" 18 | 19 | - name: Create Docker container 20 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 21 | -------------------------------------------------------------------------------- /roles/sabthrottle/templates/config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "plex": 3 | { 4 | "url":"{{ plex_web_url }}", 5 | "interval":60, 6 | "token": "{{ plex_auth_token | default('') }}" 7 | }, 8 | "sabnzbd": 9 | { 10 | "apikey":"123124sfdadsf", 11 | "url":"http://localhost:6789", 12 | "speeds":{ 13 | "1":"50M", 14 | "2":"40M", 15 | "3":"30M", 16 | "4":"20M", 17 | "5":"10M" 18 | }, 19 | "max_speed":"0M" 20 | },"notifications": { 21 | "Discord": { 22 | "enabled": false , 23 | "url": "discord://webhook_id/webhook_token" 24 | }, 25 | "Rocket.Chat": { 26 | "enabled": false, 27 | "url": "rocket://user:password@hostname/RoomID/Channel" 28 | }, 29 | "Slack": { 30 | "enabled": false, 31 | "url": "slack://TokenA/TokenB/TokenC/Channel" 32 | }, 33 | "Telegram": { 34 | "enabled": false, 35 | "url": "tgram://bottoken/ChatID" 36 | }, 37 | "IFTTT": { 38 | "enabled": false, 39 | "url": "ifttt://webhooksID/EventToTrigger" 40 | }, 41 | "PushBullet":{ 42 | "enabled": false, 43 | "url": "pbul://accesstoken" 44 | }, 45 | "Growl": { 46 | "enabled": false, 47 | "url": "growl://hostname" 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /roles/sanity_check/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check | Defaults # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | -------------------------------------------------------------------------------- /roles/sanity_check/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Saltbox Check" 11 | ansible.builtin.import_tasks: "subtasks/saltbox_check.yml" 12 | tags: always 13 | 14 | - name: "Ansible Check" 15 | ansible.builtin.import_tasks: "subtasks/ansible_check.yml" 16 | tags: always 17 | 18 | - name: "Backup Check" 19 | ansible.builtin.import_tasks: "subtasks/backup_check.yml" 20 | tags: always 21 | 22 | - name: "Repo Check" 23 | ansible.builtin.import_tasks: "subtasks/repo.yml" 24 | tags: always 25 | -------------------------------------------------------------------------------- /roles/sanity_check/tasks/subtasks/ansible_check.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check | Ansible Version # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Ansible Version | Find Ansible version 11 | ansible.builtin.shell: "{{ saltbox_python }} -c 'from ansible_collections.ansible_release import ansible_version; print(ansible_version)'" 12 | register: registered_ansible_version 13 | 14 | - name: Ansible Version | Print Ansible version 15 | ansible.builtin.debug: 16 | msg: 17 | - "Installed Ansible version: {{ registered_ansible_version.stdout }}." 18 | - "Installed Ansible Core version: {{ ansible_version.full }}." 19 | -------------------------------------------------------------------------------- /roles/sanity_check/tasks/subtasks/repo.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check | Repository Check # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Repository | Check Current Hash 11 | ansible.builtin.shell: git rev-parse HEAD 12 | register: git_version 13 | 14 | - name: Repository | Print Current Hash 15 | ansible.builtin.debug: 16 | msg: "Commit: {{ git_version.stdout }}" 17 | -------------------------------------------------------------------------------- /roles/sanity_check/tasks/subtasks/saltbox_check.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check | Saltbox Check # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Saltbox | Check if 'saltbox' folder is present" 11 | ansible.builtin.stat: 12 | path: "/srv/git/saltbox" 13 | register: saltbox_path 14 | 15 | - name: "Saltbox | Fail when 'saltbox' folder does not exist" 16 | ansible.builtin.fail: 17 | msg: "Saltbox installation is required before running the Sandbox roles." 18 | when: not saltbox_path.stat.exists 19 | -------------------------------------------------------------------------------- /roles/sanity_check/tasks/subtasks/touch_logs.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sanity Check | Touch Logs # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Touch Logs | Get 'sandbox.yml' info." 11 | ansible.builtin.stat: 12 | path: "{{ playbook_dir }}/sandbox.yml" 13 | register: sandbox_yml 14 | 15 | - name: "Touch Logs | Touch 'sandbox.log'" 16 | ansible.builtin.file: 17 | path: "{{ playbook_dir }}/sandbox.log" 18 | state: touch 19 | owner: "{{ sandbox_yml.stat.uid }}" 20 | group: "{{ sandbox_yml.stat.gid }}" 21 | mode: "0664" 22 | -------------------------------------------------------------------------------- /roles/sarotate/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: SARotate # 3 | # Author(s): hackmonker # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | 11 | ################################ 12 | # Basics 13 | ################################ 14 | 15 | sarotate_name: sarotate 16 | 17 | ################################ 18 | # Paths 19 | ################################ 20 | 21 | sarotate_paths_folder: "{{ sarotate_name }}" 22 | sarotate_paths_location: "{{ server_appdata_path }}/{{ sarotate_paths_folder }}" 23 | sarotate_paths_config_location: "{{ sarotate_paths_location }}/config.yaml" 24 | sarotate_paths_rclone_config_location: "/home/{{ user.name }}/.config/rclone/rclone.conf" 25 | sarotate_paths_service_file_location: "/etc/systemd/system/sarotate.service" 26 | rclone_mount_service_file_location: "/etc/systemd/system/rclone_vfs.service" 27 | sarotate_paths_folders_list: 28 | - "{{ sarotate_paths_location }}" 29 | -------------------------------------------------------------------------------- /roles/sarotate/templates/config.yaml.j2: -------------------------------------------------------------------------------- 1 | rclone: 2 | sleeptime: {{ sarotate.sleeptime | default('300', true) }} 3 | 4 | remotes: 5 | '{{ sarotate.sa_path }}': 6 | {% for item in remote_names %} 7 | {{ item | regex_replace(':[^:]+$', '') }}: 8 | address: localhost:{{ sarotate.rc_port | default('5572', true) }} 9 | user: {{ sarotate.rc_user | default('', true) }} 10 | pass: {{ sarotate.rc_pass | default('', true) }} 11 | {% endfor %} 12 | 13 | notification: 14 | errors_only: y 15 | apprise: 16 | - '{{ sarotate.apprise | default('', true) }}' -------------------------------------------------------------------------------- /roles/sarotate/templates/sarotate.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=sarotate 3 | After=network-online.target 4 | 5 | [Service] 6 | User={{ user.name }} 7 | Group={{ user.name }} 8 | Type=simple 9 | WorkingDirectory={{ sarotate_paths_location }} 10 | ExecStartPre=/bin/sleep 30 11 | ExecStart={{ sarotate_paths_location}}/SARotate 12 | 13 | [Install] 14 | WantedBy=default.target -------------------------------------------------------------------------------- /roles/settings/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Settings Role # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Settings | Start" 11 | ansible.builtin.include_tasks: "subtasks/start.yml" 12 | 13 | - name: "Settings | Main 2" 14 | ansible.builtin.include_tasks: "main2.yml" 15 | loop: "{{ config_files }}" 16 | loop_control: 17 | loop_var: outer_item 18 | 19 | - name: "Settings | Finish" 20 | ansible.builtin.include_tasks: "subtasks/finish.yml" 21 | -------------------------------------------------------------------------------- /roles/settings/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Settings | Main 2 # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Settings | Copy" 11 | ansible.builtin.include_tasks: "subtasks/copy.yml" 12 | vars: 13 | file: "{{ outer_item }}" 14 | 15 | - name: "Settings | Migrator" 16 | ansible.builtin.include_tasks: "subtasks/migrator.yml" 17 | vars: 18 | file: "{{ outer_item }}" 19 | 20 | - name: "Settings | Updater" 21 | ansible.builtin.include_tasks: "subtasks/updater.yml" 22 | vars: 23 | file: "{{ outer_item }}" 24 | -------------------------------------------------------------------------------- /roles/settings/tasks/subtasks/copy.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Settings | Copy # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | # Check for config files and import they are missing 11 | - name: "Copy | Check if '{{ file }}' exists" 12 | ansible.builtin.stat: 13 | path: "{{ playbook_dir }}/{{ file }}" 14 | register: file0 15 | 16 | - name: "Copy | Copy '{{ file }}.default' to '{{ file }}'" 17 | ansible.builtin.copy: 18 | src: "{{ playbook_dir }}/defaults/{{ file }}.default" 19 | dest: "{{ playbook_dir }}/{{ file }}" 20 | owner: "{{ sandbox_yml.stat.uid }}" 21 | group: "{{ sandbox_yml.stat.gid }}" 22 | mode: "0664" 23 | when: not file0.stat.exists 24 | -------------------------------------------------------------------------------- /roles/settings/tasks/subtasks/migrator.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Settings | Migrator # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Migrator | Migrations for all config files 11 | block: 12 | - name: Migrator | All | Migration 01 13 | ansible.builtin.include_tasks: "migrator/all/migration_01.yml" 14 | -------------------------------------------------------------------------------- /roles/settings/tasks/subtasks/migrator/all/migration_01.yml: -------------------------------------------------------------------------------- 1 | ######################################################################################## 2 | # Title: Sandbox: Settings | Migrator | All | Migration 01 # 3 | # Author(s): desimaniac, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################################## 7 | # GNU General Public License v3.0 # 8 | ######################################################################################## 9 | --- 10 | - name: Migrator | All | '{{ file }}' | Migration 01 | Add single space after colon (if needed) 11 | ansible.builtin.replace: 12 | path: "{{ playbook_dir }}/{{ file }}" 13 | regexp: '(:)[ \t]*(.*)' 14 | replace: '\1 \2' 15 | owner: "{{ sandbox_yml.stat.uid }}" 16 | group: "{{ sandbox_yml.stat.gid }}" 17 | mode: "0664" 18 | 19 | - name: Migrator | All | '{{ file }}' | Migration 01 | Re-import Variables 20 | ansible.builtin.include_vars: "{{ playbook_dir }}/{{ file }}" 21 | -------------------------------------------------------------------------------- /roles/solr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Gotenberg # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create directories 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 15 | 16 | - name: Create Docker container 17 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 18 | -------------------------------------------------------------------------------- /roles/speedtest/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Speedtest Server # 3 | # Author(s): Satz, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/sqlitebrowser/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: SQLiteBrowser # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/sshwifty/tasks/subtasks/settings.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Sshwifty # 3 | # Author(s): astromd, kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Settings | Check if `{{ sshwifty_paths_config_location | basename }}` exists 11 | ansible.builtin.stat: 12 | path: "{{ sshwifty_paths_config_location }}" 13 | register: sshwifty_config 14 | 15 | - name: Settings | New `{{ sshwifty_paths_config_location | basename }}` tasks 16 | when: not sshwifty_config.stat.exists 17 | block: 18 | - name: Settings | Import default `{{ sshwifty_paths_config_location | basename }}` 19 | ansible.builtin.template: 20 | src: sshwifty.conf.json.j2 21 | dest: "{{ sshwifty_paths_config_location }}" 22 | owner: "{{ user.name }}" 23 | group: "{{ user.name }}" 24 | mode: "0664" 25 | -------------------------------------------------------------------------------- /roles/sshwifty/templates/sshwifty.conf.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "HostName": "", 3 | "SharedKey": "{{user.pass}}", 4 | "DialTimeout": 5, 5 | "Socks5": "", 6 | "Socks5User": "", 7 | "Socks5Password": "", 8 | "Servers": [ 9 | { 10 | "ListenInterface": "0.0.0.0", 11 | "ListenPort": 8182, 12 | "InitialTimeout": 3, 13 | "ReadTimeout": 60, 14 | "WriteTimeout": 60, 15 | "HeartbeatTimeout": 20, 16 | "ReadDelay": 10, 17 | "WriteDelay": 10, 18 | "TLSCertificateFile": "", 19 | "TLSCertificateKeyFile": "" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /roles/syncthing/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Syncthing # 3 | # Author(s): Turbo # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | community.docker.docker_container: 19 | name: "{{ lookup('vars', role_name + '_docker_container') }}" 20 | state: absent 21 | container_default_behavior: compatibility 22 | 23 | - name: Create directories 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 25 | 26 | - name: Create Docker container 27 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 28 | -------------------------------------------------------------------------------- /roles/tauticord/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Tauticord # 3 | # Author(s): Ben Waco # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | 11 | - name: Remove existing Docker container 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 13 | 14 | - name: Create directories 15 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 16 | 17 | - name: Create Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 19 | 20 | - name: Alert user to make and verify the config. 21 | ansible.builtin.debug: 22 | msg: 23 | - "Before using this program, you must configure it. To do this, rename the file config.yaml.example in the {{ tauticord_paths_location }}/config directory to config.yaml and edit the file to your desired settings." 24 | -------------------------------------------------------------------------------- /roles/tdarr_node/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Tdarr_node # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove legacy Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | vars: 13 | var_prefix: "tdarr_node" 14 | 15 | - name: Remove existing Docker container 16 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 17 | 18 | - name: Docker Devices Task 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml" 20 | when: gpu.intel or use_nvidia 21 | 22 | - name: Create Docker container 23 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 24 | -------------------------------------------------------------------------------- /roles/telegraf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Saltbox: Telegraf | Multi-instance Tasks # 3 | # Author(s): Zuke97, salty # 4 | # URL: https://github.com/saltyorg/Saltbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Ensure we have instances for telegraf to install 11 | ansible.builtin.assert: 12 | that: 13 | - telegraf_instances is not string 14 | - telegraf_instances is not mapping 15 | - telegraf_instances is iterable 16 | - telegraf_instances | length > 0 17 | fail_msg: >- 18 | Telegraf was designed to use multi-instance configuration to install properly. Check out https://docs.saltbox.dev/reference/multiple-instances/ 19 | success_msg: >- 20 | Detected multi-instance configuration. 21 | 22 | - name: "Execute telegraf roles" 23 | ansible.builtin.include_tasks: main2.yml 24 | vars: 25 | telegraf_name: "{{ instance }}" 26 | with_items: "{{ telegraf_instances }}" 27 | loop_control: 28 | loop_var: instance 29 | -------------------------------------------------------------------------------- /roles/thelounge/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: TheLounge # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/threadfin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Threadfin # 3 | # Author(s): Satz, Migz, salty, BeansIsFat # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/tika/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Apache TIKA # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Remove existing Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | 13 | - name: Create Docker container 14 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 15 | -------------------------------------------------------------------------------- /roles/tqm/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: tqm | Default Variables # 3 | # Author(s): CHAIR/Raneydazed # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | 11 | ################################ 12 | # Basics 13 | ################################ 14 | 15 | tqm_name: tqm 16 | 17 | ################################ 18 | # Paths 19 | ################################ 20 | 21 | tqm_paths_folder: "{{ tqm_name }}" 22 | tqm_paths_location: "{{ server_appdata_path }}/{{ tqm_paths_folder }}" 23 | tqm_paths_config_location: "{{ tqm_paths_location }}/config.yaml" 24 | tqm_paths_service_location: "/etc/systemd/system/tqm.service" 25 | tqm_paths_timer_location: "/etc/systemd/system/tqm.timer" 26 | tqm_paths_folders_list: 27 | - "{{ tqm_paths_location }}" 28 | -------------------------------------------------------------------------------- /roles/tqm/templates/tqm.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=tqm service 3 | 4 | [Service] 5 | User={{ user.name }} 6 | Group={{ user.name }} 7 | Type=oneshot 8 | WorkingDirectory={{ tqm_paths_location }} 9 | ExecStartPre=/bin/sleep 30 10 | ExecStart={{ tqm_paths_location}}/tqm \ 11 | clean {{ tqm.download_client | default('qbt', true) }} 12 | 13 | [Install] 14 | WantedBy=default.target 15 | -------------------------------------------------------------------------------- /roles/tqm/templates/tqm.timer.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=tqm timer 3 | 4 | [Timer] 5 | OnUnitInactiveSec=60min 6 | 7 | 8 | [Install] 9 | WantedBy=timers.target 10 | 11 | -------------------------------------------------------------------------------- /roles/traefik_robotstxt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Traefik Robotstxt # 3 | # Author(s): JigSawFr # 4 | # URL: https://github.com/mstroecker/zig-robotstxt # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Remove legacy Docker container 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 12 | vars: 13 | var_prefix: "traefik_robotstxt" 14 | 15 | - name: Remove existing Docker container 16 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 17 | 18 | - name: Create Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 20 | -------------------------------------------------------------------------------- /roles/transmission/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Transmission # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Transmission roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | transmission_name: "{{ instance }}" 14 | with_items: "{{ transmission_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/transmission/tasks/subtasks/post-install/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Transmission | Post-Install Tasks # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Post-Install | Wait for config files to be created 11 | ansible.builtin.wait_for: 12 | path: "{{ item }}" 13 | state: present 14 | loop: 15 | - "{{ transmission_paths_setttings_location }}" 16 | 17 | - name: Post-Install | Wait for 10 seconds 18 | ansible.builtin.wait_for: 19 | timeout: 10 20 | 21 | - name: Stop Docker Container 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/stop_docker_container.yml" 23 | 24 | - name: Post-Install | Settings Task 25 | ansible.builtin.import_tasks: "settings/main.yml" 26 | 27 | - name: Start Docker Container 28 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/start_docker_container.yml" 29 | -------------------------------------------------------------------------------- /roles/transmission/tasks/subtasks/post-install/settings/main.yml: -------------------------------------------------------------------------------- 1 | ###################################################################################### 2 | # Title: Sandbox: Transmission | Post-Install | Settings | Existing Installs # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ###################################################################################### 7 | # GNU General Public License v3.0 # 8 | ###################################################################################### 9 | --- 10 | - name: Post-Install | Settings | Update 'settings.json' config settings 11 | ansible.builtin.shell: jq '."peer-port"={{ transmission_docker_ports_51413 }}' "{{ transmission_paths_setttings_location }}" | sponge "{{ transmission_paths_setttings_location }}" # noqa 204 12 | 13 | - name: Post-Install | Settings | Set '{{ transmission_paths_location }}' ownership recursively 14 | ansible.builtin.file: 15 | path: "{{ transmission_paths_location }}" 16 | state: directory 17 | recurse: yes 18 | owner: "{{ user.name }}" 19 | group: "{{ user.name }}" 20 | -------------------------------------------------------------------------------- /roles/transmission/tasks/subtasks/pre-install/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Transmission | Pre-Install Tasks # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Pre-Install | Get next available port within the range of '51413-51433' # noqa fqcn[action] 11 | find_open_port: 12 | low_bound: 51413 13 | high_bound: 51433 14 | protocol: both 15 | register: port_lookup_51413 16 | ignore_errors: true 17 | -------------------------------------------------------------------------------- /roles/transmissionvpn/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Transmission VPN # 3 | # Author(s): ayykamp # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | 11 | - name: Add DNS record 12 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 13 | vars: 14 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 15 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 16 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 17 | 18 | - name: Remove existing Docker container 19 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 20 | 21 | - name: Create directories 22 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 23 | 24 | - name: Create Docker container 25 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 26 | -------------------------------------------------------------------------------- /roles/trilium/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Trilium # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/unifi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Unifi Network Controller (Deprecated) # 3 | # Author(s): Grostim # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Fail with deprecation warning" 11 | ansible.builtin.fail: 12 | msg: "The 'unifi' role which used the 'unifi-controller' image is deprecated in favour of the 'unifi-network-application' role using the 'unifi-network-application' image. If you are using 'unifi' role, perform a full backup of your Unifi Network Application from the Unifi interface. Then rename your '/opt/unifi' folder to '/opt/unifi-controller' for backup purposes. Then run 'sb install sandbox-unifi-network-application' to deploy the new image and restore the backup when prompted by the setup wizard." 13 | when: not continuous_integration 14 | -------------------------------------------------------------------------------- /roles/unifi_network_application/templates/init-mongo.js.j2: -------------------------------------------------------------------------------- 1 | db.getSiblingDB("{{ unifi_network_application_mongo_dbname }}").createUser({user: "{{ unifi_network_application_mongo_user }}", pwd: "{{ unifi_network_application_mongo_pass }}", roles: [{role: "dbOwner", db: "{{ unifi_network_application_mongo_dbname }}"}, {role: "dbOwner", db: "{{ unifi_network_application_mongo_dbname }}_stat"}]}); -------------------------------------------------------------------------------- /roles/varken/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Varken Role # 3 | # Author(s): salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | varken_ombi_db: "{{ ombi_paths_location }}/OmbiSettings.db" 11 | varken_radarr_config: "{{ radarr_paths_location }}/config.xml" 12 | varken_sonarr_config: "{{ sonarr_paths_location }}/config.xml" 13 | varken_tautulli_config: "{{ tautulli_paths_location }}/config.ini" 14 | tautulli_api_key: "{{ (lookup('ini', 'api_key section=General file={{ varken_tautulli_config }}')) if tautulli_config.stat.exists else '' }}" 15 | -------------------------------------------------------------------------------- /roles/watchstate/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Title: Sandbox: WatchState | Multi-instance Tasks # 3 | # Author(s): keldian # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################## 7 | # GNU General Public License v3.0 # 8 | ######################################################################## 9 | --- 10 | - name: "Execute Watchstate roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | watchstate_name: "{{ instance }}" 14 | with_items: "{{ watchstate_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/watchstate/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Title: Sandbox: WatchState | Deployment Tasks # 3 | # Author(s): keldian # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################## 7 | # GNU General Public License v3.0 # 8 | ######################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/watchtower/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Watchower Role # 3 | # Author(s): l3uddz, salty, owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Watchtower roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | watchtower_name: "{{ instance }}" 14 | with_items: "{{ watchtower_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/wireguard/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: Wireguard # 3 | # Author(s): owine # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/wizarr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Wizarr # 3 | # Author(s): markschrik # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Wizarr roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | wizarr_name: "{{ instance }}" 14 | with_items: "{{ wizarr_instances }}" 15 | loop_control: 16 | loop_var: instance 17 | -------------------------------------------------------------------------------- /roles/wizarr/tasks/main2.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Wizarr # 3 | # Author(s): markschrik # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/wordpress/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: WordPress # 3 | # Author(s): Migz93, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: "Execute Wordpress roles" 11 | ansible.builtin.include_tasks: main2.yml 12 | vars: 13 | wordpress_name: "{{ wordpress_role }}" 14 | with_items: "{{ wordpress_instances }}" 15 | loop_control: 16 | loop_var: wordpress_role 17 | -------------------------------------------------------------------------------- /roles/xbackbone/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: Xbackbone # 3 | # Author(s): salty, dvsmasta # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/xteve/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Sandbox: xTeve # 3 | # Author(s): Satz, Migz, salty # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ######################################################################### 7 | # GNU General Public License v3.0 # 8 | ######################################################################### 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /roles/znc/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Sandbox: ZNC # 3 | # Author(s): kowalski # 4 | # URL: https://github.com/saltyorg/Sandbox # 5 | # -- # 6 | ########################################################################## 7 | # GNU General Public License v3.0 # 8 | ########################################################################## 9 | --- 10 | - name: Add DNS record 11 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" 12 | vars: 13 | dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" 14 | dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" 15 | dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" 16 | 17 | - name: Remove existing Docker container 18 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" 19 | 20 | - name: Create directories 21 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" 22 | 23 | - name: Create Docker container 24 | ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" 25 | -------------------------------------------------------------------------------- /scripts/check_missing_entries.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Absolute path to the directory of this script 4 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 5 | 6 | # Assume sandbox.yml is in the project root, adjust if necessary 7 | PROJECT_ROOT="$SCRIPT_DIR/.." 8 | 9 | app_list=$(awk '/# Apps Start/{flag=1;next}/# Apps End/{flag=0}flag' "$PROJECT_ROOT/sandbox.yml" | awk '!/#/' | awk -F',|:' '/role/ {print $2}' | tr -d ' ' | sort -u | tr '\n' ',' | sed 's/,$//') 10 | folder_list=$(ls "$PROJECT_ROOT/roles" | grep -v -E "(settings|sanity_check|lgsm|main_tag|maybe_finance_worker|plex_auto_languages)" | tr '\n' ',' | sed 's/,$//') 11 | missing_app=$(comm -23 <(echo $app_list | tr ',' '\n' | sort) <(echo $folder_list | tr ',' '\n' | sort)) 12 | missing_folder=$(comm -13 <(echo $app_list | tr ',' '\n' | sort) <(echo $folder_list | tr ',' '\n' | sort)) 13 | 14 | if [[ -n $missing_app || -n $missing_folder ]]; then 15 | echo -e "In app list, not in folder list:\n$missing_app\n\nIn folder list, not in app list:\n$missing_folder" >&2 16 | exit 1 17 | fi 18 | --------------------------------------------------------------------------------