├── .github ├── FUNDING.yml └── workflows │ └── code_quality.yml ├── .gitignore ├── CHANGELOG ├── LICENCE.md ├── README.md ├── TODO.md ├── autoinstall.ini.sample ├── i18n ├── en.po └── en │ └── LC_MESSAGES │ └── ks.mo ├── images ├── icon-phpstorm.svg ├── icon-pycharm.svg ├── icon-webstorm.svg └── jetbrains-training-partner.svg ├── includes ├── config │ ├── account.yml │ ├── playbooks │ │ ├── add_profile.yml │ │ ├── add_users_authelia.yml │ │ ├── block_public_tracker.yml │ │ ├── cf_force_full_ssl.yml │ │ ├── change_rights.yml │ │ ├── chown_file.yml │ │ ├── create_directory.yml │ │ ├── create_file.yml │ │ ├── get_var.yml │ │ ├── logrotate.yml │ │ ├── manage_account_yml.yml │ │ ├── qdebrid.yml │ │ ├── remove_cf_record.yml │ │ ├── templates │ │ │ ├── logrotate.j2 │ │ │ ├── sudoers.j2 │ │ │ ├── sudoers_autre.j2 │ │ │ └── zurg.service.j2 │ │ ├── test_cf.yml │ │ ├── timezone.yml │ │ └── zurg.yml │ ├── roles │ │ ├── autoscan │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── config.yml.j2 │ │ ├── backup │ │ │ ├── tasks │ │ │ │ ├── main.yml │ │ │ │ └── remove.yml │ │ │ └── templates │ │ │ │ ├── backup.j2 │ │ │ │ └── restore.j2 │ │ ├── cloudflare │ │ │ └── tasks │ │ │ │ ├── main.yml │ │ │ │ └── uninstall.yml │ │ ├── cloudplow │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ ├── cloudplow.service.j2 │ │ │ │ ├── config-drive.json.j2 │ │ │ │ └── config.json.j2 │ │ ├── docker │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── fail2ban │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ ├── apache-log4j.conf.j2 │ │ │ │ ├── cloudflare-apiv4.conf.j2 │ │ │ │ ├── custom.conf.j2 │ │ │ │ ├── docker-action.conf.j2 │ │ │ │ ├── traefik-auth.conf.j2 │ │ │ │ ├── traefik-botsearch.conf.j2 │ │ │ │ ├── traefik.conf.j2 │ │ │ │ └── traefik_cloudflare.conf.j2 │ │ ├── install │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ ├── main.yml │ │ │ │ └── subtasks │ │ │ │ ├── hetzner.yml │ │ │ │ └── hetzner_grub_edits.yml │ │ ├── kernel │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── kometa │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── config.yml.j2 │ │ ├── nano │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── yaml.nanorc.j2 │ │ ├── nginx │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── default.j2 │ │ ├── plex │ │ │ ├── defaults │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ ├── main.yml │ │ │ │ ├── settings.yml │ │ │ │ └── subtasks │ │ │ │ ├── claim_server.yml │ │ │ │ ├── extra.yml │ │ │ │ └── settings │ │ │ │ ├── db_cache_size.yml │ │ │ │ └── forced_quality.yml │ │ ├── plex_dupefinder │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── config.json.j2 │ │ ├── plex_patrol │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── settings.ini.j2 │ │ ├── plextraktsync │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ ├── docker-compose.yml.j2 │ │ │ │ └── plextraktsync.j2 │ │ ├── rclone │ │ │ ├── tasks │ │ │ │ ├── build_url.yml │ │ │ │ ├── install_binary.yml │ │ │ │ ├── main.yml │ │ │ │ └── settings.yml │ │ │ └── templates │ │ │ │ ├── decypharr-alldebrid.service.j2 │ │ │ │ ├── decypharr-realdebrid.service.j2 │ │ │ │ └── rclone.service.j2 │ │ ├── system │ │ │ ├── defaults │ │ │ │ └── main.yml │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ ├── fuse.conf │ │ │ │ │ └── rc.local │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ ├── tasks │ │ │ │ ├── main.yml │ │ │ │ ├── settings.yml │ │ │ │ └── subtasks │ │ │ │ │ ├── apt.yml │ │ │ │ │ ├── cpufrequency.yml │ │ │ │ │ ├── mounts.yml │ │ │ │ │ ├── network.yml │ │ │ │ │ ├── remove_cpupower.yml │ │ │ │ │ └── variables.yml │ │ │ └── templates │ │ │ │ └── etc │ │ │ │ └── timezone.j2 │ │ ├── ufw │ │ │ ├── files │ │ │ │ ├── plexmediaserver │ │ │ │ └── ufw.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── unionfs │ │ │ ├── tasks │ │ │ │ ├── main.yml │ │ │ │ ├── settings.yml │ │ │ │ └── subtasks │ │ │ │ │ ├── basics.yml │ │ │ │ │ ├── containers_start.yml │ │ │ │ │ ├── containers_stop.yml │ │ │ │ │ ├── docker.yml │ │ │ │ │ ├── mergerfs.yml │ │ │ │ │ ├── services.yml │ │ │ │ │ └── unionfs.yml │ │ │ └── templates │ │ │ │ ├── mergerfs.service.j2 │ │ │ │ ├── mergerfs_only_plexdrive.service.j2 │ │ │ │ ├── override.conf.j2 │ │ │ │ ├── seedcloud_mergerfs_plexdrive.service.j2 │ │ │ │ └── unionfs.service.j2 │ │ ├── user_environment │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── users │ │ │ └── tasks │ │ │ │ ├── chggroup.yml │ │ │ │ └── main.yml │ │ └── ygg-rss-proxy │ │ │ ├── tasks │ │ │ └── main.yml │ │ │ └── templates │ │ │ └── .env.j2 │ ├── rtorrent-cleaner │ │ └── rtorrent-cleaner │ ├── scripts │ │ ├── cloudflare.sh │ │ ├── domain.sh │ │ ├── generique.sh │ │ ├── generique_python.py │ │ ├── get_infos.sh │ │ ├── gluetun.sh │ │ ├── iptables.sh │ │ ├── oauth.sh │ │ ├── plex_token.sh │ │ ├── prerequis_root.sh │ │ └── seedbox.py │ ├── services │ └── services-available ├── dockerapps │ ├── README.md │ ├── acme.json │ ├── bitwarden.yml │ ├── blackhole.yml │ ├── generique.yml │ ├── gluetun.yml │ ├── imagmaid.yml │ ├── jitsi.yml │ ├── nextcloud.yml │ ├── piped.yml │ ├── plausible.yml │ ├── plex.yml │ ├── posttasks │ │ ├── alfred.yml │ │ ├── baikal.yml │ │ ├── chevereto.yml │ │ ├── cypht.yml │ │ ├── default_login_and_password.yml │ │ ├── emby.yml │ │ ├── espocrm.yml │ │ ├── filebrowser.yml │ │ ├── filerun.yml │ │ ├── freshrss.yml │ │ ├── guacamole.yml │ │ ├── hsqldb.yml │ │ ├── jackett.yml │ │ ├── jackettvpn.yml │ │ ├── jellyfin.yml │ │ ├── jellygrail.yml │ │ ├── kresus.yml │ │ ├── mariadb.yml │ │ ├── mariadb_restart.yml │ │ ├── mattermost_post.yml │ │ ├── mediawiki.yml │ │ ├── metube.yml │ │ ├── monicahq.yml │ │ ├── navidrome.yml │ │ ├── paperless.yml │ │ ├── petio.yml │ │ ├── picapport.yml │ │ ├── piwigo.yml │ │ ├── plexautolanguages.yml │ │ ├── postgresql.yml │ │ ├── prowlarr.yml │ │ ├── rflood.yml │ │ ├── rtorrentvpn.yml │ │ ├── rutorrent.yml │ │ ├── rutorrentcm.yml │ │ ├── sabnzbd.yml │ │ ├── sensorr.yml │ │ ├── syncthing.yml │ │ ├── transmissionvpn.yml │ │ ├── wireguard.yml │ │ ├── wordpress.yml │ │ └── yourls.yml │ ├── prestashop.yml │ ├── pretasks │ │ ├── alfred.yml │ │ ├── appkey.yml │ │ ├── authelia.yml │ │ ├── changedetection.yml │ │ ├── chevereto.yml │ │ ├── decypharr.yml │ │ ├── deluge.yml │ │ ├── emby.yml │ │ ├── espocrm.yml │ │ ├── firefoxsyncserver.yml │ │ ├── gitlab.yml │ │ ├── immich.yml │ │ ├── jellyfin.yml │ │ ├── jellygrail.yml │ │ ├── mariadb_officiel.yml │ │ ├── n8nio.yml │ │ ├── netdata.yml │ │ ├── ntopng.yml │ │ ├── ombi.yml │ │ ├── paperless.yml │ │ ├── postgresql15.yml │ │ ├── postgresql16.yml │ │ ├── prowlarr.yml │ │ ├── qbitorrentvpn.yml │ │ ├── rdtclient.yml │ │ ├── rtorrentvpn.yml │ │ ├── streamfusion.yml │ │ ├── stremio │ │ │ ├── postgres_setup.yml │ │ │ └── stremio_base.yml │ │ ├── stremiocatalogs.yml │ │ ├── stremiosaga.yml │ │ ├── stremiotrakt.yml │ │ ├── syncthing.yml │ │ ├── tautulli.yml │ │ ├── tmdb.yml │ │ ├── trakt.yml │ │ ├── transmissionvpn.yml │ │ ├── zilean.yml │ │ └── zurg.yml │ ├── pureftpd.yml │ ├── recyclarr.yml │ ├── rutorrentmulti.yml │ ├── seafile.yml │ ├── synclounge.yml │ ├── templates │ │ ├── Torrentio │ │ │ └── Custom │ │ │ │ ├── annatar.yml │ │ │ │ ├── elfhosted-internal.yml │ │ │ │ ├── elfhosted-public.yml │ │ │ │ ├── elfhosted-torrentio.yml │ │ │ │ ├── knightcrawler.yml │ │ │ │ ├── torrentio.yml │ │ │ │ └── zilean.yml │ │ ├── ansible │ │ │ └── ansible.yml │ │ ├── authelia │ │ │ ├── configuration.yml.j2 │ │ │ └── users.yml.j2 │ │ ├── blackhole │ │ │ ├── .env.j2 │ │ │ ├── blackhole.j2 │ │ │ ├── blackhole4k.j2 │ │ │ ├── docker-compose.yml.j2 │ │ │ ├── repair.j2 │ │ │ └── repair4k.j2 │ │ ├── generique │ │ │ ├── flaresolverr.yml │ │ │ ├── generique.yml │ │ │ ├── hsqldb.yml │ │ │ ├── mariadb.yml │ │ │ ├── mariadb_officiel.yml │ │ │ ├── memcached.yml │ │ │ ├── postgresql.yml │ │ │ ├── postgresqldb.yml │ │ │ ├── redis.yml │ │ │ ├── rutorrent_multi_traefik_labels.yml.j2 │ │ │ └── traefik_labels.yml.j2 │ │ ├── imagmaid │ │ │ └── .env.j2 │ │ ├── iptables │ │ │ ├── defaults │ │ │ │ └── main.yml.j2 │ │ │ └── main.yml │ │ ├── jellygrail │ │ │ └── jellygrail.sh.j2 │ │ ├── jitsi │ │ │ └── config.js.j2 │ │ ├── nextcloud │ │ │ └── turnserver.conf.j2 │ │ ├── ntopngsys │ │ │ └── ntopngsys.toml.j2 │ │ ├── picapport │ │ │ └── picapport.properties.j2 │ │ ├── piped │ │ │ ├── configure-instance.yml.j2 │ │ │ ├── hyperpipe.toml.j2 │ │ │ └── piped.yml.j2 │ │ ├── plausible │ │ │ ├── clickhouse-config.xml │ │ │ ├── clickhouse-user-config.xml │ │ │ └── create_db_clickhouse.sh │ │ ├── plex │ │ │ ├── defaults │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ ├── settings.yml │ │ │ │ └── subtasks │ │ │ │ ├── claim_server.yml │ │ │ │ ├── extra.yml │ │ │ │ └── settings │ │ │ │ ├── db_cache_size.yml │ │ │ │ └── forced_quality.yml │ │ ├── plex_auto_languages │ │ │ └── config.yml.j2 │ │ ├── qdebrid │ │ │ ├── docker-compose.yml.j2 │ │ │ ├── qdebrid_zurg_binarie.yml.j2 │ │ │ └── qdebrid_zurg_docker.yml.j2 │ │ ├── rutorrent │ │ │ └── rutorrent-vpn.yml.j2 │ │ ├── ssh │ │ │ ├── defaults │ │ │ │ └── main.yml.j2 │ │ │ └── main.yml │ │ ├── traefik │ │ │ ├── middlewares-chains.toml.j2 │ │ │ ├── middlewares.toml.j2 │ │ │ ├── nginx.toml.j2 │ │ │ └── oauth.yml │ │ ├── varken │ │ │ ├── defaults.ini │ │ │ └── telegraf.conf.j2 │ │ ├── ygg-rss-proxy │ │ │ └── .env │ │ └── zurg │ │ │ └── config.yml.j2 │ ├── thelounge.yml │ ├── traefik.yml │ ├── varken.yml │ ├── vars │ │ ├── actualbudget.yml │ │ ├── airdcpp.yml │ │ ├── alfred.yml │ │ ├── authelia.yml │ │ ├── autoindex.yml │ │ ├── baikal.yml │ │ ├── baserow.yml │ │ ├── bazarr.yml │ │ ├── bookstack.yml │ │ ├── cadvisor.yml │ │ ├── calibre.yml │ │ ├── calibreweb.yml │ │ ├── changedetection.yml │ │ ├── chevereto.yml │ │ ├── cloudcmd.yml │ │ ├── codif.yml │ │ ├── cops.yml │ │ ├── cypht.yml │ │ ├── dashdot.yml │ │ ├── davos.yml │ │ ├── decypharr.yml │ │ ├── deemixrr.yml │ │ ├── deluge.yml │ │ ├── digikam.yml │ │ ├── dozzle.yml │ │ ├── duplicati.yml │ │ ├── emby.yml │ │ ├── espocrm.yml │ │ ├── exemple.yml │ │ ├── fenrus.yml │ │ ├── filebot.yml │ │ ├── filebrowser.yml │ │ ├── filerun.yml │ │ ├── firefox.yml │ │ ├── firefoxsyncserver.yml │ │ ├── foptimum.yml │ │ ├── freshrss.yml │ │ ├── gethomepage.yml │ │ ├── gitea.yml │ │ ├── gitlab.yml │ │ ├── goaccess.yml │ │ ├── gotify.yml │ │ ├── grocy.yml │ │ ├── guacamole.yml │ │ ├── handbrake.yml │ │ ├── heimdall.yml │ │ ├── homarr.yml │ │ ├── immich.yml │ │ ├── jackett.yml │ │ ├── jacketttest.yml │ │ ├── jackettvpn.yml │ │ ├── jdownloader.yml │ │ ├── jellyfin.yml │ │ ├── jellygrail.yml │ │ ├── jellyseerr.yml │ │ ├── jfago.yml │ │ ├── kasm.yml │ │ ├── kavita.yml │ │ ├── kitana.yml │ │ ├── komga.yml │ │ ├── kresus.yml │ │ ├── kuma.yml │ │ ├── librespeed.yml │ │ ├── lidarr.yml │ │ ├── linkding.yml │ │ ├── logarr.yml │ │ ├── mango.yml │ │ ├── mattermost.yml │ │ ├── mealie.yml │ │ ├── mediawiki.yml │ │ ├── medusa.yml │ │ ├── mellow.yml │ │ ├── metube.yml │ │ ├── microbin.yml │ │ ├── minecraft.yml │ │ ├── mkvtoolnix.yml │ │ ├── monicahq.yml │ │ ├── monitorr.yml │ │ ├── myhomepage.yml │ │ ├── n8nio.yml │ │ ├── navidrome.yml │ │ ├── netdata.yml │ │ ├── nocodb.yml │ │ ├── nowshowing.yml │ │ ├── ntopng.yml │ │ ├── nzbhydra.yml │ │ ├── ombi.yml │ │ ├── openvpn.yml │ │ ├── organizr.yml │ │ ├── overseerr.yml │ │ ├── paperless.yml │ │ ├── pastebin.yml │ │ ├── petio.yml │ │ ├── picapport.yml │ │ ├── pingvin.yml │ │ ├── piwigo.yml │ │ ├── plexautolanguages.yml │ │ ├── portainer.yml │ │ ├── prowlarr.yml │ │ ├── pyload.yml │ │ ├── qbitorrentvpn.yml │ │ ├── qbittorrent.yml │ │ ├── qflood.yml │ │ ├── radarr.yml │ │ ├── radarr4k.yml │ │ ├── rclone.yml │ │ ├── rdtclient.yml │ │ ├── readarr.yml │ │ ├── rflood.yml │ │ ├── rtorrentvpn.yml │ │ ├── rutorrent.yml │ │ ├── rutorrent5.yml │ │ ├── rutorrent_2.yml │ │ ├── rutorrent_3.yml │ │ ├── rutorrent_4.yml │ │ ├── rutorrentcm.yml │ │ ├── sabnzbd.yml │ │ ├── scrutiny.yml │ │ ├── sensorr.yml │ │ ├── shaarli.yml │ │ ├── sickchill.yml │ │ ├── sickgear.yml │ │ ├── sismicsreader.yml │ │ ├── sonarr.yml │ │ ├── sonarr4k.yml │ │ ├── speedtest.yml │ │ ├── speedtesttracker.yml │ │ ├── statping.yml │ │ ├── stirlingpdf.yml │ │ ├── streamfusion.yml │ │ ├── stremiocatalogs.yml │ │ ├── stremiomanager.yml │ │ ├── stremiosaga.yml │ │ ├── stremiotmdbdice.yml │ │ ├── stremiotrakt.yml │ │ ├── subsonic.yml │ │ ├── syncthing.yml │ │ ├── tautulli.yml │ │ ├── thelounge.yml │ │ ├── transmission.yml │ │ ├── transmissionvpn.yml │ │ ├── ttrss.yml │ │ ├── ubooquity.yml │ │ ├── vaultwarden.yml │ │ ├── vikunja.yml │ │ ├── vnstat.yml │ │ ├── wallos.yml │ │ ├── webdav.yml │ │ ├── webtop.yml │ │ ├── wetty.yml │ │ ├── wgeasy.yml │ │ ├── whisparr.yml │ │ ├── wikijs.yml │ │ ├── wireguard.yml │ │ ├── wireguardui.yml │ │ ├── wizarr.yml │ │ ├── wordpress.yml │ │ ├── xteve.yml │ │ ├── yacht.yml │ │ ├── yourls.yml │ │ ├── zilean.yml │ │ └── zurg.yml │ └── watchtower.yml ├── functions.sh ├── menus.sh └── variables.sh ├── logs └── .gitignore ├── menu ├── patches ├── 20230730_n8nio ├── 20230921_python3-lxml ├── 20231210_getarch ├── 20231222_pip ├── 20240530_python3-requests2.31 ├── 20240826_jq └── 20240924_fail2ban ├── prerequis.sh ├── profile.sh ├── seedbox.sh └── tmp └── .gitignore /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: Merrick28 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 2 | patreon: # Replace with a single Patreon username 3 | open_collective: # Replace with a single Open Collective username 4 | ko_fi: # Replace with a single Ko-fi username 5 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 6 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 7 | liberapay: # Replace with a single Liberapay username 8 | issuehunt: # Replace with a single IssueHunt username 9 | otechie: # Replace with a single Otechie username 10 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 11 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] -------------------------------------------------------------------------------- /.github/workflows/code_quality.yml: -------------------------------------------------------------------------------- 1 | name: Qodana 2 | on: 3 | workflow_dispatch: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | - 'releases/*' 9 | 10 | jobs: 11 | qodana: 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: write 15 | pull-requests: write 16 | checks: write 17 | steps: 18 | - uses: actions/checkout@v3 19 | with: 20 | ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit 21 | fetch-depth: 0 # a full history is required for pull request analysis 22 | - name: 'Qodana Scan' 23 | uses: JetBrains/qodana-action@v2023.3 24 | env: 25 | QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | [Documentation](https://projetssd.github.io/ssdv2_docs/) 5 | 6 | [![Discord: https://discord.gg/ZhWvKVmTuh](https://img.shields.io/badge/Discord-gray.svg?style=for-the-badge)](https://discordapp.com/invite/ZhWvKVmTuh) 7 | 8 | ## JetBrains 9 | merci à [JetBrains JetBrains](http://www.jetbrains.com/) pour les licences open source qui nous permettent de travailler sur ce projet. 10 | 11 | * [PhpStorm PhpStorm](http://www.jetbrains.com/phpstorm/) 12 | * [WebStorm WebStorm](http://www.jetbrains.com/webstorm/) 13 | * [Pycharm Pycharm](http://www.jetbrains.com/pycharm/) 14 | *** 15 | 16 | > Ce script est proposé à des fins d'expérimentation uniquement, le téléchargement d’oeuvre copyrightées est illégal. 17 | Merci de vous conformer à la législation en vigueur en fonction de vos pays respectifs en faisant vos tests sur des fichiers libres de droits 18 | *** 19 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | - outils sans interface web (cloudplow, autoscan...) : container ? 2 | - mettre un container dédié aux envois de mail (qui fait vers un relais existant = https://hub.docker.com/r/turgon37/smtp-relay ?) -------------------------------------------------------------------------------- /i18n/en/LC_MESSAGES/ks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projetssd/ssdv2/d4a2aa69cb1251bc5a933370460755e57a5f1f2f/i18n/en/LC_MESSAGES/ks.mo -------------------------------------------------------------------------------- /includes/config/account.yml: -------------------------------------------------------------------------------- 1 | --- 2 | user: 3 | name: 4 | domain: 5 | mail: 6 | group: 7 | userid: 8 | groupid: 9 | pass: 10 | htpwd: 11 | cloudflare: 12 | login: 13 | api: 14 | oauth: 15 | client: 16 | secret: 17 | account: 18 | openssl: 19 | rclone: 20 | remote: 21 | plex: 22 | token: 23 | ident: 24 | sesame: 25 | open_main_ports: yes 26 | open_extra_ports: yes 27 | force_auto_adjust_quality: no 28 | force_high_output_bitrates: no 29 | db_cache_size: 1000000 30 | transcodes: /mnt/transcodes 31 | sub: 32 | -------------------------------------------------------------------------------- /includes/config/playbooks/add_profile.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: set path 6 | lineinfile: 7 | path: "{{ lookup('env','HOME') }}/.bashrc" 8 | line: "{{ item }}" 9 | with_items: 10 | - alias seedbox='{{ settings.source }}/seedbox.sh' -------------------------------------------------------------------------------- /includes/config/playbooks/block_public_tracker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | 6 | - name: install ipset 7 | become: yes 8 | apt: 9 | name: ipset 10 | state: present 11 | 12 | - name: create directory 13 | file: 14 | path: "{{ lookup('env','HOME') }}/scripts/block_public_tracker" 15 | state: directory 16 | 17 | - name: Get repo 18 | git: 19 | repo: "https://github.com/Merrick28/block_public_tracker.git" 20 | dest: "{{ lookup('env','HOME') }}/scripts/block_public_tracker" 21 | 22 | - name: Add to cron 23 | become: yes 24 | cron: 25 | name: "Block public trackers" 26 | minute: "0" 27 | hour: "0" 28 | job: "{{ lookup('env','HOME') }}/scripts/block_public_tracker/block_ipset.sh" -------------------------------------------------------------------------------- /includes/config/playbooks/cf_force_full_ssl.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | 5 | 6 | 7 | tasks: 8 | 9 | - name: Get CF zone id 10 | uri: 11 | url: "https://api.cloudflare.com/client/v4/zones?name={{ user.domain }}&status=active&match=all" 12 | method: GET 13 | headers: 14 | X-Auth-Email: "{{ cloudflare.login }}" 15 | X-Auth-Key: "{{ cloudflare.api }}" 16 | return_content: yes 17 | register: cf_zone_id 18 | 19 | - name: Force ssl on the zone 20 | uri: 21 | url: "https://api.cloudflare.com/client/v4/zones/{{ (cf_zone_id.content| from_json).result[0].id }}/settings/ssl" 22 | method: PATCH 23 | headers: 24 | X-Auth-Email: "{{ cloudflare.login }}" 25 | X-Auth-Key: "{{ cloudflare.api }}" 26 | Content-Type: application/json 27 | body: '{"value":"full"}' 28 | body_format: json 29 | 30 | -------------------------------------------------------------------------------- /includes/config/playbooks/change_rights.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: "Change directory {{ DIRECTORY }} rights" 7 | file: 8 | path: "{{ DIRECTORY }}" 9 | state: directory 10 | mode: 0777 -------------------------------------------------------------------------------- /includes/config/playbooks/chown_file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: "Change owner of the file {{ FILE }}" 7 | file: 8 | path: "{{ FILE }}" 9 | state: file 10 | owner: "{{ lookup('env','USER') }}" 11 | group: "{{ lookup('env','MYGIDNAME') }}" -------------------------------------------------------------------------------- /includes/config/playbooks/create_directory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: "Make sure directory {{ DIRECTORY }} is present" 7 | file: 8 | path: "{{ DIRECTORY }}" 9 | state: directory 10 | owner: "{{ lookup('env','USER') }}" 11 | group: "{{ lookup('env','MYGIDNAME') }}" -------------------------------------------------------------------------------- /includes/config/playbooks/create_file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: Make sure file is present 7 | file: 8 | path: "{{ FILE }}" 9 | state: touch 10 | owner: "{{ lookup('env','USER') }}" 11 | group: "{{ lookup('env','MYGIDNAME') }}" -------------------------------------------------------------------------------- /includes/config/playbooks/get_var.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | 5 | 6 | tasks: 7 | - name: split vars 8 | set_fact: 9 | myindexes: "{{ myvar | split('.') }}" 10 | 11 | - name: init result 12 | set_fact: 13 | myresult: "{{ vars }}" 14 | 15 | - name: loop block 16 | block: 17 | - name: set variables 18 | set_fact: 19 | myresult: "{{ myresult[item] }}" 20 | with_items: "{{ myindexes }}" 21 | 22 | rescue: 23 | - name: set empty var 24 | set_fact: 25 | myresult: "notfound" 26 | 27 | - name: debug 28 | debug: 29 | msg: "##RESULT##{{ myresult }}##RESULT##" 30 | 31 | -------------------------------------------------------------------------------- /includes/config/playbooks/logrotate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: Logrotate 7 | template: 8 | src: "{{ settings.source }}/includes/config/playbooks/templates/logrotate.j2" 9 | dest: /etc/logrotate.d/ansible 10 | force: yes -------------------------------------------------------------------------------- /includes/config/playbooks/manage_account_yml.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | roles: 5 | - kwoodson.yedit 6 | tasks: 7 | - name: "Gestion du fichier account.yml - clé {{ account_key }}" 8 | yedit: 9 | src: "{{ lookup('env','HOME') }}/.ansible/inventories/group_vars/all.yml" 10 | key: "{{ account_key }}" 11 | value: "{{ account_value }}" 12 | state: "{{ state }}" -------------------------------------------------------------------------------- /includes/config/playbooks/remove_cf_record.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | vars_files: 5 | - "{{ settings.source }}/includes/dockerapps/templates/generique/generique.yml" 6 | 7 | tasks: 8 | - name: "Remove DNS Record on CloudFlare" 9 | include_tasks: "{{ settings.source }}/includes/config/roles/cloudflare/tasks/uninstall.yml" 10 | vars: 11 | subdomain: "{{sub[pgrole][pgrole] if sub_enabled else pgrole}}" 12 | when: cloudflare_enabled 13 | -------------------------------------------------------------------------------- /includes/config/playbooks/templates/logrotate.j2: -------------------------------------------------------------------------------- 1 | {{ lookup('env','SETTINGS_SOURCE') }}/logs/*.log { 2 | rotate 7 3 | daily 4 | compress 5 | missingok 6 | su {{ lookup('env','USER') }} {{ lookup('env','MYGIDNAME') }} 7 | } -------------------------------------------------------------------------------- /includes/config/playbooks/templates/sudoers.j2: -------------------------------------------------------------------------------- 1 | {{ lookup('env','SUDO_USER') }} ALL=(ALL:ALL) NOPASSWD:ALL -------------------------------------------------------------------------------- /includes/config/playbooks/templates/sudoers_autre.j2: -------------------------------------------------------------------------------- 1 | {{ CREEUSER_USERNAME }} ALL=(ALL:ALL) NOPASSWD:ALL -------------------------------------------------------------------------------- /includes/config/playbooks/templates/zurg.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Zurg 3 | After=network-online.target 4 | 5 | [Service] 6 | User={{ lookup('env','USER') }} 7 | Group={{ lookup('env','MYGIDNAME') }} 8 | Type=simple 9 | 10 | WorkingDirectory={{ lookup('env','HOME') }}/scripts/zurg 11 | ExecStart={{ lookup('env','HOME') }}/scripts/zurg/zurg 12 | ExecStop=killall zurg 13 | Restart=always 14 | RestartSec=5 15 | 16 | [Install] 17 | WantedBy=default.target 18 | -------------------------------------------------------------------------------- /includes/config/playbooks/timezone.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | become: yes 5 | tasks: 6 | - name: set timezone 7 | timezone: 8 | name: Europe/Paris 9 | - name: create /etc/localtime 10 | file: 11 | path: /etc/localtime 12 | state: link 13 | src: /usr/share/zoneinfo/Europe/Paris -------------------------------------------------------------------------------- /includes/config/roles/backup/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | 6 | - name: 'Import backup config' 7 | become: yes 8 | template: 9 | src: "{{ settings.source }}/includes/config/roles/backup/templates/backup.j2" 10 | dest: /usr/local/bin/backup 11 | owner: "root" 12 | group: "root" 13 | mode: 0755 14 | force: yes 15 | 16 | - name: 'Import restore config' 17 | become: yes 18 | template: 19 | src: "{{ settings.source }}/includes/config/roles/backup/templates/restore.j2" 20 | dest: /usr/local/bin/restore 21 | owner: "root" 22 | group: "root" 23 | mode: 0755 24 | force: yes 25 | 26 | - name: "Set logrotate" 27 | become: yes 28 | lineinfile: 29 | path: /etc/logrotate.d/rsyslog 30 | line: "/var/log/backup.log" 31 | insertbefore: BOF 32 | 33 | - name: Set cron 34 | become: yes 35 | cron: 36 | name: "backup" 37 | minute: "0" 38 | hour: "3" 39 | weekday: "6" 40 | job: "/usr/local/bin/backup >> /var/log/backup.log 2>&1" 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /includes/config/roles/backup/tasks/remove.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | 6 | 7 | - name: Set cron 8 | become: yes 9 | cron: 10 | name: "backup" 11 | minute: "0" 12 | hour: "3" 13 | weekday: "6" 14 | job: "/usr/local/bin/backup >> /var/log/backup.log 2>&1" 15 | state: absent 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /includes/config/roles/cloudflare/tasks/uninstall.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - set_fact: 4 | zone_id: "{{ lookup('pipe', 'curl -s -X GET \"https://api.cloudflare.com/client/v4/zones?name=' + user.domain + '\" -H \"X-Auth-Email: ' + cloudflare.login + '\" -H \"X-Auth-Key: ' + cloudflare.api + '\" -H \"Content-Type: application/json\" | jq -r \".result[0].id\"') }}" 5 | 6 | - set_fact: 7 | record_id: "{{ lookup('pipe', 'curl -s -X GET \"https://api.cloudflare.com/client/v4/zones/' + zone_id + '/dns_records?name=' + subdomain + '.' + user.domain + '\" -H \"X-Auth-Email: ' + cloudflare.login + '\" -H \"X-Auth-Key: ' + cloudflare.api + '\" -H \"Content-Type: application/json\" | jq -r \".result[0].id\"') }}" 8 | 9 | - command: > 10 | curl -s -X DELETE "https://api.cloudflare.com/client/v4/zones/{{ zone_id }}/dns_records/{{ record_id }}" 11 | -H "X-Auth-Email: {{ cloudflare.login }}" 12 | -H "X-Auth-Key: {{ cloudflare.api }}" 13 | -H "Content-Type: application/json" 14 | register: delete_result 15 | 16 | - name: Remove DNS Record 17 | debug: 18 | msg: "DNS Record for '{{ subdomain }}' remove from '{{ network.ipv4 }}'." 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /includes/config/roles/cloudplow/templates/cloudplow.service.j2: -------------------------------------------------------------------------------- 1 | # /etc/systemd/system/cloudplow.service 2 | 3 | [Unit] 4 | Description=Cloudplow 5 | After=network-online.target 6 | 7 | [Service] 8 | User={{ lookup('env','USER') }} 9 | Group={{ lookup('env','MYGIDNAME') }} 10 | Type=simple 11 | WorkingDirectory=/home/{{ lookup('env','USER') }}/scripts/cloudplow/ 12 | ExecStart={{ settings.source }}/venv/bin/python3 /home/{{ lookup('env','USER') }}/scripts/cloudplow/cloudplow.py run --loglevel=INFO 13 | ExecStopPost=/bin/rm -rf /home/{{ lookup('env','USER') }}/scripts/cloudplow/locks 14 | Restart=always 15 | RestartSec=10 16 | 17 | [Install] 18 | WantedBy=default.target 19 | -------------------------------------------------------------------------------- /includes/config/roles/docker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | become: yes 4 | roles: 5 | - geerlingguy.docker -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/apache-log4j.conf.j2: -------------------------------------------------------------------------------- 1 | # 2 | # catch Log4j vulnerability as per CVE-2021-44228 3 | # 4 | # jay@gooby.org 5 | # https://jay.gooby.org/2021/12/13/a-fail2ban-filter-for-the-log4j-cve-2021-44228 6 | # https://gist.github.com/jaygooby/3502143639e09bb694e9c0f3c6203949 7 | # Thanks to https://gist.github.com/kocour for a better regex 8 | 9 | [Definition] 10 | #failregex = ^ -.*\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+ 11 | failregex = ^ .* "(HEAD|GET|POST) /.*jndi:(ldap[s]?|rmi|dns|nis|iiop|corba|nds|http[s]?).*".*?$ -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/custom.conf.j2: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | ignoreip = 127.0.0.1 3 | findtime = 3600 4 | bantime = 600 5 | 6 | [sshd] 7 | enabled = true 8 | port = {{ ssh_port }} 9 | {% if ansible_distribution_major_version == "12" %} 10 | backend = systemd 11 | {% else %} 12 | logpath = /var/log/auth.log 13 | {% endif %} 14 | banaction = iptables-multiport 15 | maxretry = 5 16 | -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/docker-action.conf.j2: -------------------------------------------------------------------------------- 1 | [Definition] 2 | 3 | actionstart = iptables -N f2b-traefik-auth 4 | iptables -A f2b-traefik-auth -j RETURN 5 | iptables -I FORWARD -p tcp -m multiport --dports 443 -j f2b-traefik-auth 6 | 7 | actionstop = iptables -D FORWARD -p tcp -m multiport --dports 443 -j f2b-traefik-auth 8 | iptables -F f2b-traefik-auth 9 | iptables -X f2b-traefik-auth 10 | 11 | actioncheck = iptables -n -L FORWARD | grep -q 'f2b-traefik-auth[ \t]' 12 | 13 | actionban = iptables -I f2b-traefik-auth -s -j DROP 14 | 15 | actionunban = iptables -D f2b-traefik-auth -s -j DROP -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/traefik-auth.conf.j2: -------------------------------------------------------------------------------- 1 | [Definition] 2 | failregex = ^ \- \S+ \[\] \"(GET|POST|HEAD) .+\" 401 .+$ 3 | ignoreregex = -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/traefik-botsearch.conf.j2: -------------------------------------------------------------------------------- 1 | [INCLUDES] 2 | before = botsearch-common.conf 3 | 4 | [Definition] 5 | failregex = ^ \- \S+ \[\] \"(GET|POST|HEAD) \/ \S+\" 404 .+$ -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/traefik.conf.j2: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | ignoreip = 127.0.0.1 3 | findtime = 3600 4 | bantime = 600 5 | 6 | [traefik-auth] 7 | enabled = true 8 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 9 | port = http,https 10 | banaction = docker-action 11 | maxretry = 10 12 | 13 | [traefik-botsearch] 14 | enabled = true 15 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 16 | maxretry = 10 17 | port = http,https 18 | banaction = iptables-multiport 19 | 20 | [traefik-badbots] 21 | enabled = true 22 | filter = apache-badbots 23 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 24 | maxretry = 10 25 | port = http,https 26 | banaction = iptables-multiport 27 | 28 | [apache-log4j] 29 | enabled = true 30 | filter = apache-log4j 31 | action = iptables-multiport 32 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 33 | bantime = 3d 34 | maxretry = 1 35 | -------------------------------------------------------------------------------- /includes/config/roles/fail2ban/templates/traefik_cloudflare.conf.j2: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | ignoreip = 127.0.0.1 3 | findtime = 3600 4 | bantime = 600 5 | 6 | [traefik-auth] 7 | enabled = true 8 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 9 | port = http,https 10 | action = cloudflare-apiv4 11 | iptables-allports 12 | maxretry = 10 13 | 14 | [traefik-botsearch] 15 | enabled = true 16 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 17 | maxretry = 10 18 | port = http,https 19 | action = cloudflare-apiv4 20 | iptables-allports 21 | 22 | [traefik-badbots] 23 | enabled = true 24 | filter = apache-badbots 25 | logpath = {{ settings.storage }}/docker/traefik/logs/access.log 26 | maxretry = 10 27 | port = http,https 28 | action = cloudflare-apiv4 29 | iptables-allports 30 | -------------------------------------------------------------------------------- /includes/config/roles/install/handlers/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Hetzner: Reload GRUB Handler # 3 | # Author(s): desimaniac # 4 | # URL: https://github.com/cloudbox/cloudbox # 5 | # -- # 6 | # Part of the Cloudbox project: https://cloudbox.works # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | # https://github.com/debops/ansible-grub 12 | - name: Reload GRUB 13 | command: grub-mkconfig -o /boot/grub/grub.cfg 14 | register: grub_register_update 15 | failed_when: ('error' in grub_register_update.stderr) 16 | -------------------------------------------------------------------------------- /includes/config/roles/kernel/tasks/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Cloudbox: Kernel Role # 3 | # Author(s): l3uddz, desimaniac # 4 | # URL: https://github.com/cloudbox/cloudbox # 5 | # -- # 6 | # Part of the Cloudbox project: https://cloudbox.works # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - hosts: localhost 12 | gather_facts: true 13 | tasks: 14 | 15 | - name: "Hetzner Tasks" 16 | import_tasks: "subtasks/hetzner.yml" 17 | tags: kernel-hetzner 18 | 19 | handlers: 20 | # https://github.com/debops/ansible-grub 21 | - name: Reload GRUB 22 | command: grub-mkconfig -o /boot/grub/grub.cfg 23 | register: grub_register_update 24 | failed_when: ('error' in grub_register_update.stderr) 25 | 26 | -------------------------------------------------------------------------------- /includes/config/roles/nano/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: false 5 | become: true 6 | tasks: 7 | 8 | - name: Check yaml.nanorc exists 9 | stat: 10 | path: "/usr/share/nano/yaml.nanorc" 11 | register: yaml_nanorc 12 | 13 | - name: Installing yaml.nanorc (touch) 14 | file: 15 | path: "/usr/share/nano/yaml.nanorc" 16 | state: touch 17 | mode: 0600 18 | when: yaml_nanorc.stat.exists == False 19 | 20 | - name: Import yaml.nanorc 21 | template: 22 | src: "{{ settings.source }}/includes/config/roles/nano/templates/yaml.nanorc.j2" 23 | dest: "/usr/share/nano/yaml.nanorc" 24 | 25 | - name: change rights 26 | file: 27 | path: "/usr/share/nano/yaml.nanorc" 28 | state: touch 29 | owner: "{{ lookup('env','MYUID') }}" 30 | mode: 0755 31 | 32 | -------------------------------------------------------------------------------- /includes/config/roles/nano/templates/yaml.nanorc.j2: -------------------------------------------------------------------------------- 1 | # Supports `YAML` files 2 | syntax "YAML" "\.ya?ml$" 3 | header "^(---|===)" "%YAML" 4 | 5 | ## Keys 6 | color magenta "^\s*[\$A-Za-z0-9_-]+\:" 7 | color brightmagenta "^\s*@[\$A-Za-z0-9_-]+\:" 8 | 9 | ## Values 10 | color white ":\s.+$" 11 | ## Booleans 12 | icolor brightcyan " (y|yes|n|no|true|false|on|off)$" 13 | ## Numbers 14 | color brightred " [[:digit:]]+(\.[[:digit:]]+)?" 15 | ## Arrays 16 | color red "\[" "\]" ":\s+[|>]" "^\s*- " 17 | ## Reserved 18 | color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) " 19 | 20 | ## Comments 21 | color brightwhite "#.*$" 22 | 23 | ## Errors 24 | color ,red ":\w.+$" 25 | color ,red ":'.+$" 26 | color ,red ":".+$" 27 | color ,red "\s+$" 28 | 29 | ## Non closed quote 30 | color ,red "['\"][^['\"]]*$" 31 | 32 | ## Closed quotes 33 | color yellow "['\"].*['\"]" 34 | 35 | ## Equal sign 36 | color brightgreen ":( |$)" 37 | -------------------------------------------------------------------------------- /includes/config/roles/nginx/templates/default.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 81 default_server; 3 | listen [::]:81 default_server; 4 | 5 | root /var/www/{{user.domain}}; 6 | 7 | index index.php index.html index.htm index.nginx-debian.html; 8 | 9 | server_name {{user.domain}}; 10 | 11 | location / { 12 | try_files $uri $uri/ =404; 13 | } 14 | 15 | 16 | location ~ \.php$ { 17 | include snippets/fastcgi-php.conf; 18 | fastcgi_pass unix:/var/run/php/php{{ fpm.stdout }}-fpm.sock; 19 | fastcgi_buffers 16 16k; 20 | fastcgi_buffer_size 32k; 21 | } 22 | 23 | location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { 24 | expires 1M; 25 | access_log off; 26 | add_header Cache-Control "public"; 27 | } 28 | 29 | # CSS and Javascript 30 | location ~* \.(?:css|js)$ { 31 | expires 1y; 32 | access_log off; 33 | add_header Cache-Control "public"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /includes/config/roles/plex/tasks/settings.yml: -------------------------------------------------------------------------------- 1 | --- 2 | gpu: 3 | intel: yes 4 | nvidia: 5 | enabled: no 6 | driver: 410.78 -------------------------------------------------------------------------------- /includes/config/roles/plextraktsync/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | tasks: 4 | 5 | - name: Install docker-compose from official github repo 6 | become: yes 7 | get_url: 8 | url : https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 9 | dest: /usr/local/bin/docker-compose 10 | mode: '0755' 11 | 12 | - name: create directory 13 | file: 14 | path: "{{ lookup('env','HOME') }}/scripts/plextraktsync/" 15 | state: directory 16 | 17 | - name: copy docker-compose file 18 | template: 19 | src: "{{ settings.source }}/includes/config/roles/plextraktsync/templates/docker-compose.yml.j2" 20 | dest: "{{ lookup('env','HOME') }}/scripts/plextraktsync/docker-compose.yml" 21 | 22 | - name: copy executable 23 | become: yes 24 | template: 25 | src: "{{ settings.source }}/includes/config/roles/plextraktsync/templates/plextraktsync.j2" 26 | dest: "/usr/local/bin/plextraktsync" 27 | mode: 0755 28 | 29 | - name: set cron 30 | cron: 31 | name: "plextraktsync" 32 | minute: "0" 33 | job: "/usr/local/bin/plextraktsync" -------------------------------------------------------------------------------- /includes/config/roles/plextraktsync/templates/docker-compose.yml.j2: -------------------------------------------------------------------------------- 1 | services: 2 | plextraktsync: 3 | image: ghcr.io/taxel/plextraktsync 4 | volumes: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/plextraktsync/config:/app/config" -------------------------------------------------------------------------------- /includes/config/roles/plextraktsync/templates/plextraktsync.j2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "{{ lookup('env','HOME') }}/scripts/plextraktsync" 3 | /usr/local/bin/docker-compose run --rm plextraktsync -------------------------------------------------------------------------------- /includes/config/roles/rclone/tasks/settings.yml: -------------------------------------------------------------------------------- 1 | --- 2 | rclone: 3 | version: latest -------------------------------------------------------------------------------- /includes/config/roles/rclone/templates/rclone.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Zurg 3 | AssertPathIsDirectory={{ lookup('env','HOME') }}/seedbox/zurg 4 | After=network-online.target 5 | 6 | [Service] 7 | User={{ lookup('env','USER') }} 8 | Group={{ lookup('env','MYGIDNAME') }} 9 | Type=simple 10 | ExecStart=/usr/bin/rclone mount zurg: {{ lookup('env','HOME') }}/seedbox/zurg \ 11 | --config={{ lookup('env','HOME') }}/.config/rclone/rclone.conf \ 12 | --allow-other \ 13 | --gid {{ user.groupid }} \ 14 | --uid {{ user.userid }} \ 15 | --allow-non-empty \ 16 | --dir-cache-time=20s \ 17 | --cache-dir={{ lookup('env','HOME') }}/.cache/rclone \ 18 | --vfs-cache-mode=full \ 19 | --vfs-cache-max-size=25G \ 20 | --rc \ 21 | --rc-addr=172.17.0.1:5572 \ 22 | --rc-web-gui-no-open-browser \ 23 | --rc-no-auth 24 | ExecStop=/bin/fusermount -uz {{ lookup('env','HOME') }}/seedbox/zurg 25 | Restart=always 26 | RestartSec=5 27 | 28 | [Install] 29 | WantedBy=default.target 30 | -------------------------------------------------------------------------------- /includes/config/roles/system/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # Title: Cloudbox: Settings | Default Variables # 3 | # Author(s): desimaniac # 4 | # URL: https://github.com/cloudbox/cloudbox # 5 | # -- # 6 | # Part of the Cloudbox project: https://cloudbox.works # 7 | ########################################################################## 8 | # GNU General Public License v3.0 # 9 | ########################################################################## 10 | --- 11 | ################################ 12 | # Continuous Integration 13 | ################################ 14 | 15 | continuous_integration: false 16 | -------------------------------------------------------------------------------- /includes/config/roles/system/files/etc/fuse.conf: -------------------------------------------------------------------------------- 1 | # /etc/fuse.conf - Configuration file for Filesystem in Userspace (FUSE) 2 | 3 | # Set the maximum number of FUSE mounts allowed to non-root users. 4 | # The default is 1000. 5 | #mount_max = 1000 6 | 7 | # Allow non-root users to specify the allow_other or allow_root mount options. 8 | user_allow_other 9 | -------------------------------------------------------------------------------- /includes/config/roles/system/files/etc/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # rc.local 4 | # 5 | # This script is executed at the end of each multiuser runlevel. 6 | # Make sure that the script will "exit 0" on success or any other 7 | # value on error. 8 | # 9 | # In order to enable or disable this script just change the execution 10 | # bits. 11 | # 12 | # By default this script does nothing. 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /includes/config/roles/system/handlers/main.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Cloudbox: System Handler # 3 | # Author(s): desimaniac # 4 | # URL: https://github.com/cloudbox/cloudbox # 5 | # -- # 6 | # Part of the Cloudbox project: https://cloudbox.works # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: Handers | Update 'locales' 12 | command: dpkg-reconfigure --frontend noninteractive locales 13 | 14 | - name: Handers | Update 'tzdata' 15 | command: dpkg-reconfigure --frontend noninteractive tzdata 16 | -------------------------------------------------------------------------------- /includes/config/roles/system/tasks/settings.yml: -------------------------------------------------------------------------------- 1 | system: 2 | timezone: "Europe/Paris" -------------------------------------------------------------------------------- /includes/config/roles/system/templates/etc/timezone.j2: -------------------------------------------------------------------------------- 1 | {{ tz }} 2 | -------------------------------------------------------------------------------- /includes/config/roles/ufw/files/plexmediaserver: -------------------------------------------------------------------------------- 1 | [plexmediaserver] 2 | title=Plex Media Server (Standard) 3 | description=The Plex Media Server 4 | ports=32400/tcp|3005/tcp|5353/udp|8324/tcp|32410:32414/udp 5 | 6 | [plexmediaserver-dlna] 7 | title=Plex Media Server (DLNA) 8 | description=The Plex Media Server (additional DLNA capability only) 9 | ports=1900/udp|32469/tcp 10 | 11 | [plexmediaserver-all] 12 | title=Plex Media Server (Standard + DLNA) 13 | description=The Plex Media Server (with additional DLNA capability) 14 | ports=32400/tcp|3005/tcp|5353/udp|8324/tcp|32410:32414/udp|1900/udp|32469/tcp -------------------------------------------------------------------------------- /includes/config/roles/ufw/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: true 4 | tasks: 5 | 6 | - name: copy plex ufw rules 7 | become: yes 8 | copy: 9 | src: "{{ settings.source }}/includes/config/roles/ufw/files/plexmediaserver" 10 | dest: /etc/ufw/applications.d/plexmediaserver 11 | owner: root 12 | mode: 0755 13 | - name: copy yml file 14 | copy: 15 | src: "{{ settings.source }}/includes/config/roles/ufw/files/ufw.yml" 16 | dest: "{{ settings.storage }}/conf/ufw.yml" 17 | force: no 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /includes/config/roles/unionfs/tasks/settings.yml: -------------------------------------------------------------------------------- 1 | --- 2 | mounts: 3 | unionfs: "{{ unionfs }}" -------------------------------------------------------------------------------- /includes/config/roles/unionfs/tasks/subtasks/containers_start.yml: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: UnionFS: Container Start Tasks # 3 | # Author(s): desimaniac # 4 | # URL: https://github.com/cloudbox/cloudbox # 5 | # -- # 6 | # Part of the Cloudbox project: https://cloudbox.works # 7 | ######################################################################### 8 | # GNU General Public License v3.0 # 9 | ######################################################################### 10 | --- 11 | - name: "Containers | Start all previously running Docker containers" 12 | shell: "docker start {{ containers_list }}" 13 | ignore_errors: yes 14 | when: (containers_list | trim | length > 0) 15 | -------------------------------------------------------------------------------- /includes/config/roles/unionfs/templates/mergerfs.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=gmedia mergerfs mount 3 | Requires=rclone.service 4 | After=rclone.service 5 | 6 | [Service] 7 | Type=forking 8 | ExecStart=/usr/bin/mergerfs {{ lookup('env','HOME') }}/local:/mnt/rclone/{{lookup('env','USER') }} {{ lookup('env','HOME') }}/Medias -o rw,use_ino,allow_other,func.getattr=newest,category.action=all,category.create=ff,cache.files=auto-full 9 | ExecStop=/bin/fusermount -u {{ lookup('env','HOME') }}/Medias 10 | KillMode=process 11 | Restart=on-failure 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | 16 | -------------------------------------------------------------------------------- /includes/config/roles/unionfs/templates/mergerfs_only_plexdrive.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=MergerFS Mount 3 | After=network-online.target 4 | 5 | [Service] 6 | Type=forking 7 | GuessMainPID=no 8 | ExecStart=/usr/bin/mergerfs \ 9 | -o category.create=ff,async_read=false,cache.files=partial \ 10 | -o dropcacheonclose=true,use_ino,minfreespace=0 \ 11 | -o xattr=nosys,statfs_ignore=ro,allow_other,umask=002,noatime \ 12 | /home/{{ user.name }}/local=RW:/mnt/rclone/{{ user.name }}=NC /home/{{ user.name }}/Medias 13 | ExecStop=/bin/fusermount -uz /home/{{ user.name }}/Medias 14 | 15 | [Install] 16 | WantedBy=default.target 17 | -------------------------------------------------------------------------------- /includes/config/roles/unionfs/templates/override.conf.j2: -------------------------------------------------------------------------------- 1 | ######################################################################### 2 | # Title: Cloudbox: Docker Config Override # 3 | # Location: /etc/systemd/system/docker.service.d/override.conf # 4 | # Author(s): l3uddz, desimaniac # 5 | # URL: https://github.com/cloudbox/cloudbox # 6 | # -- # 7 | # Part of the Cloudbox project: https://cloudbox.works # 8 | ######################################################################### 9 | # GNU General Public License v3.0 # 10 | ######################################################################### 11 | 12 | [Unit] 13 | After={{ 'mergerfs' if (mounts.unionfs|lower) == 'mergerfs' else 'unionfs' }}.service 14 | 15 | [Service] 16 | ExecStartPre=/bin/sleep 10 17 | -------------------------------------------------------------------------------- /includes/config/roles/unionfs/templates/seedcloud_mergerfs_plexdrive.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=MergerFS Mount 3 | After=network-online.target 4 | AssertPathIsDirectory=/mnt/PlexdriveSeed 5 | 6 | [Service] 7 | User={{ lookup('env','USER') }} 8 | Group={{ lookup('env','MYGIDNAME') }} 9 | Type=forking 10 | GuessMainPID=no 11 | ExecStart=/usr/bin/mergerfs \ 12 | -o category.create=ff,async_read=false,cache.files=partial \ 13 | -o dropcacheonclose=true,use_ino,minfreespace=0 \ 14 | -o xattr=nosys,statfs_ignore=ro,allow_other,umask=002,noatime \ 15 | /home/{{ lookup('env','USER') }}/local=RW:/mnt/PlexdriveSeed/{{ user.name }}=NC /home/{{ user.name }}/PlexdriveSeed 16 | ExecStop=/bin/fusermount -uz /home/{{ lookup('env','USER') }}/PlexdriveSeed 17 | 18 | [Install] 19 | WantedBy=default.target 20 | -------------------------------------------------------------------------------- /includes/config/roles/user_environment/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: verify profile 6 | file: 7 | path: "/home/{{ lookup('env','USER') }}/.profile" 8 | state: touch 9 | 10 | - name: Ajout alias 11 | lineinfile: 12 | path: "/home/{{ lookup('env','USER') }}/.profile" 13 | line: "alias seedbox='cd {{ settings.source }} && ./seedbox.sh'" 14 | 15 | - name: Ajout chargement venv 16 | lineinfile: 17 | path: "/home/{{ lookup('env','USER') }}/.profile" 18 | line: "cd {{ settings.source }} && source profile.sh && cd /home/{{ lookup('env','USER') }}" 19 | 20 | - name: Ajout clear 21 | lineinfile: 22 | path: "/home/{{ lookup('env','USER') }}/.profile" 23 | line: "clear" 24 | 25 | - name: Ajout logo 26 | lineinfile: 27 | path: "/home/{{ lookup('env','USER') }}/.profile" 28 | line: "logo" 29 | 30 | 31 | -------------------------------------------------------------------------------- /includes/config/roles/users/tasks/chggroup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: true 4 | tasks: 5 | - name: Change user group 6 | shell: newgrp docker 7 | -------------------------------------------------------------------------------- /includes/config/roles/users/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: true 4 | become: yes 5 | tasks: 6 | - name: Check that group exists 7 | group: 8 | name: docker 9 | state: present 10 | - name: Add the user to docker group 11 | user: 12 | name: "{{ lookup('env','USER') }}" 13 | groups: docker 14 | append: yes 15 | -------------------------------------------------------------------------------- /includes/config/roles/ygg-rss-proxy/templates/.env.j2: -------------------------------------------------------------------------------- 1 | YGG_USER={{ ygg_user }} 2 | YGG_PASS={{ ygg_pass }} 3 | YGG_URL={{ ygg_url }} 4 | RSS_HOST=ygg-rss-proxy 5 | RSS_PORT=8080 6 | RSS_SCHEMA=http 7 | FLARESOLVERR_SCHEMA=http 8 | FLARESOLVERR_HOST=flaresolverr 9 | FLARESOLVERR_PORT=8191 10 | GUNICORN_PORT=8080 11 | GUNICORN_WORKERS=4 12 | GUNICORN_BINDER=0.0.0.0 13 | GUNICORN_TIMEOUT=120 14 | LOG_PATH=/app/config/logs/rss-proxy.log 15 | LOG_LEVEL=DEBUG 16 | LOG_REDACTED=True 17 | DB_PATH=/app/config/rss-proxy.db 18 | SECRET_KEY=superkey_that_can_be_changed 19 | -------------------------------------------------------------------------------- /includes/config/rtorrent-cleaner/rtorrent-cleaner: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run -it --rm \ 3 | -v /home/%SEEDUSER%/local/rutorrent:/home/%SEEDUSER%/local/rutorrent \ 4 | -v /%SETTINGS_STORAGE%/docker/%SEEDUSER%/rutorrent/sock:/run/php \ 5 | magicalex/rtorrent-cleaner 6 | echo "" 7 | docker run -it --rm \ 8 | -v /home/%SEEDUSER%/local/rutorrent:/home/%SEEDUSER%/local/rutorrent \ 9 | -v /%SETTINGS_STORAGE%/docker/%SEEDUSER%/rutorrent/sock:/run/php \ 10 | magicalex/rtorrent-cleaner $* /run/php/rtorrent.sock 11 | -------------------------------------------------------------------------------- /includes/config/scripts/cloudflare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source ${SETTINGS_SOURCE}/profile.sh 4 | clear 5 | logo 6 | 7 | echo -e "${CRED}----------------------------------------${CEND}" 8 | echo -e "${CCYAN}"$(gettext "Mise en place Cloudflare")"${CEND}" 9 | echo -e "${CRED}----------------------------------------${CEND}" 10 | echo "" 11 | 12 | echo -e " ${BWHITE}* Supression Containers docker${NC}" 13 | docker rm -f $(docker ps -aq) >/dev/null 2>&1 14 | 15 | echo -e " ${BWHITE}* Installation Cloudflare${NC}" 16 | manage_account_yml cloudflare.login " " 17 | manage_account_yml cloudflare.api " " 18 | cloudflare 19 | 20 | echo -e " ${BWHITE}* Installation Traefik${NC}" 21 | install_traefik 22 | 23 | echo -e " ${BWHITE}* Réinitialisation des services avec Cloudflare${NC}" 24 | relance_tous_services 25 | 26 | echo -e "${CRED}------------------------------------------------${CEND}" 27 | echo -e "${CCYAN}"$(gettext "Mise à jour Cloudflare effectuée")"${CEND}" 28 | echo -e "${CRED}------------------------------------------------${CEND}" 29 | echo "" 30 | echo -e "\n"$(gettext "Appuyer sur")"${CCYAN} ["$(gettext "ENTREE")"]${CEND}" $(gettext "pour continuer") 31 | read -r 32 | 33 | -------------------------------------------------------------------------------- /includes/config/scripts/generique.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ########################################################### 3 | # permet juste de lancer la fonction laubash depuis python 4 | # python ne permet pas de lancer des fonctions bash 5 | ############################################################ 6 | # Utilisation : 7 | # generique.sh 8 | # ex: 9 | # generique.sh launch_service rutorrent 10 | ############################################################ 11 | 12 | source "${SETTINGS_SOURCE}/includes/variables.sh" 13 | source "${SETTINGS_SOURCE}/includes/menus.sh" 14 | source "${SETTINGS_SOURCE}/includes/functions.sh" 15 | "$@" 16 | -------------------------------------------------------------------------------- /includes/config/scripts/generique_python.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import seedbox 3 | 4 | """ 5 | CE script sert à lancer une fonction pyehon depuis bash 6 | il faut que la fonction se trouve dans seedbox.py 7 | """ 8 | 9 | eval('seedbox.' + sys.argv[1] + '()') 10 | -------------------------------------------------------------------------------- /includes/config/services: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projetssd/ssdv2/d4a2aa69cb1251bc5a933370460755e57a5f1f2f/includes/config/services -------------------------------------------------------------------------------- /includes/dockerapps/acme.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projetssd/ssdv2/d4a2aa69cb1251bc5a933370460755e57a5f1f2f/includes/dockerapps/acme.json -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/alfred.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - debug: 3 | msg: "🚀🚀🚀 IMPORTANT 🚀🚀🚀 | 📚 DOC ALFRED → https://github.com/Pukabyte/alfred | 💡 Consultez la documentation avant de continuer." 4 | 5 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/baikal.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | - name: Creating paths 7 | become: yes 8 | file: 9 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/baikal/Specific/db" 10 | state: directory 11 | mode: 0777 12 | owner: "{{user.userid}}" 13 | group: "{{user.groupid}}" 14 | - name: Rights 15 | become: yes 16 | file: 17 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/baikal/" 18 | state: directory 19 | recurse: yes 20 | mode: 0777 21 | owner: "{{user.userid}}" 22 | group: "{{user.groupid}}" 23 | 24 | - name: 'Deploying {{pgrole}}' 25 | docker_container: "{{ docker_info }}" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/chevereto.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | 5 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/cypht.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/default_login_and_password.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Display default login and password 3 | debug: 4 | msg: 5 | - "Default Login: {{ dlogin }}" 6 | - "Default Password: {{ dpasswd }}" 7 | 8 | - name: Wait for user to press Enter to continue 9 | pause: 10 | prompt: "Press Enter to continue..." 11 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/emby.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Configuring {{ pgrole }} for first time use' 3 | block: 4 | 5 | - name: Install pip requirements 6 | pip: 7 | name: lxml 8 | state: present 9 | #executable: pip 10 | #extra_args: --user 11 | virtualenv: '{{ settings.source }}/venv' 12 | 13 | - name: 'Pending XML Generation' 14 | wait_for: 15 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config/system.xml" 16 | state: present 17 | 18 | - name: 'Wait 5 Seconds' 19 | wait_for: 20 | timeout: 5 21 | 22 | - name: 'Stop {{ pgrole }}' 23 | docker_container: 24 | name: '{{ pgrole }}' 25 | state: stopped 26 | 27 | - name: 'Turn Off Reporting' 28 | become: yes 29 | xml: 30 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config/system.xml" 31 | xpath: /ServerConfiguration/EnableAnonymousUsageReporting 32 | value: 'false' 33 | ignore_errors: yes 34 | 35 | - name: 'Deploying {{pgrole}}' 36 | docker_container: "{{ docker_info }}" 37 | when: not xmlcheck.stat.exists 38 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/filebrowser.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | - name: Creating paths 7 | become: yes 8 | file: 9 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/filebrowser/config" 10 | state: directory 11 | mode: 0777 12 | owner: "{{user.userid}}" 13 | group: "{{user.groupid}}" 14 | - name: Rights 15 | become: yes 16 | file: 17 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/filebrowser/config" 18 | state: directory 19 | recurse: yes 20 | mode: 0777 21 | owner: "{{user.userid}}" 22 | group: "{{user.groupid}}" 23 | 24 | - name: 'Deploying {{pgrole}}' 25 | docker_container: "{{ docker_info }}" 26 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/filerun.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/freshrss.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/guacamole.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: prepare directory 3 | become: yes 4 | file: 5 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/init" 6 | state: directory 7 | mode: 0777 8 | owner: "{{ lookup('env','MYUID') }}" 9 | group: "{{ lookup('env','MYGID') }}" 10 | 11 | - name: Prepare database dump 12 | shell: 13 | chdir: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/init" 14 | cmd: "docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > /tmp/initdb.sql" 15 | 16 | - name: Copy file 17 | become: yes 18 | copy: 19 | src: /tmp/initdb.sql 20 | dest: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/init/initdb.sql" 21 | 22 | 23 | - name: Launch Pretask 24 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb_officiel.yml" 25 | 26 | - name: Wait for database to be up 27 | wait_for: 28 | timeout: 30 29 | 30 | - name: 'Deploying guacd' 31 | docker_container: 32 | name: 'guacd' 33 | image: "guacamole/guacd" 34 | restart_policy: unless-stopped 35 | networks: 36 | - name: traefik_proxy 37 | state: started 38 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/hsqldb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | 7 | - name: Launch postgresql 8 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/hsqldb.yml" 9 | 10 | - name: 'Deploying {{pgrole}}' 11 | docker_container: 12 | name: '{{ pgrole }}' 13 | state: started 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/jackett.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/flaresolverr.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/jackettvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Deploying flaresolverr-vpn' 3 | docker_container: 4 | name: 'flaresolverr-vpn' 5 | image: 'ghcr.io/flaresolverr/flaresolverr:latest' 6 | env: 7 | CAPTCHA_SOLVER: 'harvester' 8 | HARVESTER_ENDPOINT: 'https://127.0.0.1:5000/token' 9 | LOG_LEVEL: 'info' 10 | published_ports: 11 | - '8191:8191' 12 | pull: yes 13 | restart_policy: unless-stopped 14 | networks: 15 | - name: traefik_proxy 16 | state: started 17 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/jellyfin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Configuring {{ pgrole }} for first time use' 3 | become: true 4 | block: 5 | 6 | - name: 'Pending XML Generation' 7 | wait_for: 8 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config/system.xml" 9 | state: present 10 | 11 | - name: 'Wait 5 Seconds' 12 | wait_for: 13 | timeout: 5 14 | 15 | - name: 'Stop {{ pgrole }}' 16 | docker_container: 17 | name: '{{ pgrole }}' 18 | state: stopped 19 | 20 | - name: 'Change owner of the folder' 21 | file: 22 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}" 23 | state: directory 24 | recurse: yes 25 | owner: "{{ lookup('env','MYUID') }}" 26 | group: "{{ lookup('env','MYGID') }}" 27 | 28 | - name: 'Turn Off Reporting' 29 | xml: 30 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config/system.xml" 31 | xpath: /ServerConfiguration/EnableAnonymousUsageReporting 32 | value: 'false' 33 | 34 | - name: 'Restart {{ pgrole }}' 35 | docker_container: 36 | name: '{{ pgrole }}' 37 | state: started 38 | when: not xmlcheck.stat.exists 39 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/jellygrail.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Importer les configurations de jellygrail 3 | become: yes 4 | template: 5 | src: "{{ settings.source }}/includes/dockerapps/templates/jellygrail/{{ item.src }}" 6 | dest: "{{ item.dest }}" 7 | owner: "{{ lookup('env', 'MYUID') }}" 8 | group: "{{ lookup('env', 'MYGID') }}" 9 | mode: 0755 10 | force: yes 11 | with_items: 12 | - { src: "jellygrail.sh.j2", dest: "/usr/local/bin/jellygrail" } 13 | 14 | - name: Afficher un message 15 | debug: 16 | msg: | 17 | Pour finaliser l'installation, taper 'jellygrail' ds la console ssh 18 | 19 | - name: Installation terminée 20 | pause: 21 | prompt: "Appuyez sur Entrée pour revenir au menu principal" 22 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/kresus.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/postgresql.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/mariadb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/mariadb_restart.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | 7 | - name: Launch Pretask 8 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 9 | 10 | - name: 'Deploying {{pgrole}}' 11 | docker_container: "{{ docker_info }}" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/mattermost_post.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | 7 | - name: Change directory rights 8 | become: yes 9 | command: 10 | cmd: "chmod -R 777 {{ settings.storage }}/docker/{{user.name}}/{{pgrole}}" 11 | 12 | - name: 'Deploying {{pgrole}}' 13 | docker_container: "{{ docker_info }}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/mediawiki.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/metube.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: 'Stopping {{ pgrole }}' 4 | docker_container: 5 | name: '{{ pgrole }}' 6 | state: stopped 7 | 8 | - name: 'Creating metube folder paths' 9 | become: yes 10 | file: 11 | path: "{{item}}" 12 | state: "directory" 13 | mode: "0777" 14 | owner: "{{user.userid}}" 15 | group: "{{user.groupid}}" 16 | recurse: "yes" 17 | with_items: 18 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config" 19 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/downloads/videos" 20 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/downloads/audios" 21 | 22 | - name: 'Deploying {{pgrole}}' 23 | docker_container: "{{ docker_info }}" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/monicahq.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/navidrome.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: change directory rights 3 | become: true 4 | file: 5 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config" 6 | owner: "{{ lookup('env','MYUID') }}" 7 | group: "{{ lookup('env','MYGID') }}" 8 | 9 | - name: 'Stop {{ pgrole }}' 10 | docker_container: 11 | name: '{{ pgrole }}' 12 | state: stopped 13 | 14 | 15 | 16 | - name: 'Deploying {{pgrole}}' 17 | docker_container: "{{ docker_info }}" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/paperless.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Commande à saisir pour créer l'utilisateur 3 | debug: 4 | msg: "docker exec -ti paperless bash -c 'python /usr/src/paperless/src/manage.py createsuperuser'" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/petio.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | community.docker.docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Setting PG ENV' 8 | set_fact: 9 | mongo_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | - name: 'Deploying db-{{pgrole}}' 14 | docker_container: 15 | name: 'mongo-{{pgrole}}' 16 | recreate: true 17 | image: 'mongo:4.4' 18 | pull: yes 19 | volumes: 20 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/data/db" 21 | - '/etc/localtime:/etc/localtime:ro' 22 | env: '{{mongo_env}}' 23 | restart_policy: unless-stopped 24 | networks: 25 | - name: '{{pgrole}}-net' 26 | state: started 27 | 28 | - name: Wait for 10 seconds before continuing 29 | wait_for: 30 | timeout: 10 31 | 32 | - name: Add '{{pgrole}}-net' to network 33 | community.docker.docker_network: 34 | name: '{{pgrole}}-net' 35 | connected: 36 | - '{{ pgrole }}' 37 | appends: yes 38 | 39 | 40 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/picapport.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "Prepare configuration" 3 | template: 4 | src: "{{ settings.source }}/includes/dockerapps/templates/picapport/picapport.properties.j2" 5 | dest: "{{ settings.storage }}/docker/{{ user.name }}/picapport/config/picapport.properties" 6 | become: yes 7 | 8 | - name: 'Stop {{ pgrole }}' 9 | docker_container: 10 | name: '{{ pgrole }}' 11 | state: stopped 12 | 13 | - name: 'Deploying {{pgrole}}' 14 | docker_container: "{{ docker_info }}" -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/piwigo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/plexautolanguages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | 7 | - name: Copy conf 8 | become: yes 9 | template: 10 | src: "{{ settings.source }}/includes/dockerapps/templates/plex_auto_languages/config.yml.j2" 11 | dest: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config.yaml" 12 | 13 | - name: 'Deploying {{pgrole}}' 14 | docker_container: "{{ docker_info }}" 15 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/postgresql.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying db-{{pgrole}}' 8 | docker_container: 9 | name: 'db-{{pgrole}}' 10 | recreate: true 11 | image: 'postgres' 12 | pull: yes 13 | volumes: 14 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/var/lib/postgresql/data" 15 | - '/etc/localtime:/etc/localtime:ro' 16 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/init:/docker-entrypoint-initdb.d" 17 | env: 18 | POSTGRES_USER: "{{pgrole}}" 19 | POSTGRES_PASSWORD: "{{pgrole}}" 20 | POSTGRES_DB: "{{pgrole}}" 21 | restart_policy: unless-stopped 22 | networks: 23 | - name: '{{pgrole}}-net' 24 | state: started 25 | 26 | - name: Wait for 10 seconds before continuing 27 | wait_for: 28 | timeout: 10 29 | 30 | - name: Add '{{pgrole}}-net' to network 31 | docker_network: 32 | name: '{{pgrole}}-net' 33 | connected: 34 | - '{{ pgrole }}' 35 | appends: yes 36 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/prowlarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/flaresolverr.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/rflood.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Stop {{ pgrole }}' 3 | docker_container: 4 | name: '{{ pgrole }}' 5 | state: stopped 6 | 7 | - name: Create directory 8 | file: 9 | path: "/home/{{ lookup('env','USER') }}/local/{{pgrole}}" 10 | state: directory 11 | 12 | - name: 'Deploying {{pgrole}}' 13 | docker_container: "{{ docker_info }}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/sensorr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: execute command in docker 3 | shell: | 4 | docker exec sensorr sh -l -c "mv /app/{{ pgrole }}/config.default.json /app/{{ pgrole }}/config/config.json" 5 | register: result 6 | 7 | - debug: msg="{{ result }}" 8 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/syncthing.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create directory 3 | file: 4 | path: "/home/{{ lookup('env','USER') }}/Sync" 5 | state: directory 6 | owner: "{{ lookup('env','MYUID') }}" 7 | group: "{{ lookup('env','MYGID') }}" 8 | 9 | - name: 'Configuring {{pgrole}} for first time use' 10 | block: 11 | - name: 'Wait 10 Seconds' 12 | wait_for: 13 | timeout: 10 14 | 15 | - name: Replace default sync path in config file 16 | replace: 17 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config/config.xml" 18 | regexp: 'path="~"' 19 | replace: 'path="/sync"' 20 | 21 | when: not xmlcheck.stat.exists 22 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/transmissionvpn.yml: -------------------------------------------------------------------------------- 1 | - name: 2 | debug: 3 | msg: Une fois l'installation terminée, il faut patienter environ 5 mn pour l'interface Webui soit dispo !! 4 | 5 | - name: Prendre connaissance du message ci dessus 6 | wait_for: 7 | timeout: 10 8 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/wireguard.yml: -------------------------------------------------------------------------------- 1 | - name: 2 | debug: 3 | msg: 4 | - "Une fois l'installation terminée, il faut afficher les logs pour avoir le qrcode (commande docker logs -f wireguard puis faire entrée) !!" 5 | - "Une fois que vous avez scanné le qrcode, ctrl+c pour sortir des logs" 6 | 7 | - name: Prendre connaissance du message ci dessus 8 | pause: 9 | prompt: "Prendre connaissance du message ci dessus, puis faire entrée" 10 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/wordpress.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/posttasks/yourls.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/templates/generique/mariadb.yml" 4 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/alfred.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - pause: 3 | prompt: "Entrez le chemin pour SYMLINK_DIR (ex: /home/ubuntu/Medias)" 4 | echo: yes 5 | register: symlink_input 6 | 7 | - pause: 8 | prompt: "Entrez le chemin pour TORRENTS_DIR (ex: /home/ubuntu/seedbox/zurg)" 9 | echo: yes 10 | register: torrents_input 11 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/chevereto.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Creating paths 3 | file: 4 | path: "/home/{{ lookup('env','USER') }}/local/images" 5 | state: directory 6 | mode: "0776" 7 | 8 | - name: Creating paths 9 | file: 10 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}" 11 | state: directory 12 | mode: "0776" 13 | 14 | - name: 'Touch php.ini' 15 | file: 16 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/chevereto-php.ini" 17 | state: touch 18 | 19 | - name: 'Insert php.ini' 20 | blockinfile: 21 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/chevereto-php.ini" 22 | block: | 23 | file_uploads = On 24 | memory_limit = 256M 25 | upload_max_filesize = 100M 26 | post_max_size = 100M 27 | max_execution_time = 600 28 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/deluge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Creating deluge folder paths' 3 | file: 'path={{item}} state=directory mode=0775 owner={{user.userid}} group={{user.groupid}}' 4 | with_items: 5 | - "/home/{{ lookup('env','USER') }}/local/{{ pgrole }}" 6 | - "/home/{{ lookup('env','USER') }}/{{ pgrole }}/downloads" 7 | - "/home/{{ lookup('env','USER') }}/{{ pgrole }}/incomplete" 8 | - "/home/{{ lookup('env','USER') }}/{{ pgrole }}/torrent" 9 | - "/home/{{ lookup('env','USER') }}/{{ pgrole }}/watch" 10 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/emby.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'XML Check' 3 | stat: 4 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/system.xml" 5 | register: xmlcheck 6 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/espocrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create espocrm-daemon 3 | docker_container: 4 | name: mysql 5 | image: mysql:8 6 | env: 7 | MYSQL_ROOT_PASSWORD: espocrm 8 | MYSQL_DATABASE: espocrm 9 | MYSQL_USER: espocrm 10 | MYSQL_PASSWORD: espocrm 11 | volumes: 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/mysql:/var/lib/mysql" 13 | networks: 14 | - name: traefik_proxy 15 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/firefoxsyncserver.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set 'secret_connect' variable 3 | set_fact: 4 | secret_connect: "{{lookup('community.general.random_string', length=20, special=false)}}" 5 | 6 | - name: Set 'nom_court' variable 7 | set_fact: 8 | nom_court: "{{sub[pgrole][pgrole] if sub_enabled else pgrole}}" 9 | 10 | - name: Set 'url_public' variable 11 | set_fact: 12 | url_public: "http://{{ nom_court }}.{{ user.domain }}" 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/gitlab.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Creating paths 3 | file: 'path={{item}} state=directory mode=0775 owner={{user.userid}} group={{user.groupid}}' 4 | with_items: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config" 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/logs" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data" 8 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/jellyfin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'XML Check' 3 | stat: 4 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config/config/system.xml" 5 | register: xmlcheck 6 | 7 | - name: 'Check' 8 | stat: 9 | path: '/dev/dri' 10 | register: dev_dri 11 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/jellygrail.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Cloner le dépôt Jellygrail 3 | git: 4 | repo: https://github.com/philamp/jellygrail.git 5 | dest: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}" 6 | clone: yes 7 | 8 | - name: Creating paths 9 | become: yes 10 | file: "path={{item}} state=directory mode=0775 owner={{ lookup('env','MYUID') }} group={{ lookup('env','MYGID') }}" 11 | with_items: 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/Video_Library" 13 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/fallbackdata" 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/mariadb_officiel.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Deploying db-{{pgrole}}' 3 | docker_container: 4 | name: 'db-{{pgrole}}' 5 | recreate: true 6 | image: 'mariadb:10.6.4' 7 | pull: yes 8 | volumes: 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/data:/var/lib/mysql" 10 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/init:/docker-entrypoint-initdb.d" 11 | - '/etc/localtime:/etc/localtime:ro' 12 | env: 13 | TZ: "Europe/Paris" 14 | MYSQL_ROOT_PASSWORD: "{{user.pass}}" 15 | MYSQL_USER: "{{pgrole}}" 16 | MYSQL_PASSWORD: "{{pgrole}}" 17 | MYSQL_DATABASE: "{{pgrole}}" 18 | PUID: "{{ lookup('env','MYUID') }}" 19 | PGID: "{{ lookup('env','MYGID') }}" 20 | restart_policy: unless-stopped 21 | networks: 22 | - name: 'traefik_proxy' 23 | state: started 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/n8nio.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check if paths is existing and creating if necessary 3 | become: yes 4 | file: 5 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config" 6 | state: directory 7 | mode: '0775' 8 | owner: "{{ lookup('env','MYUID') }}" 9 | group: "{{ lookup('env','MYGID') }}" 10 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/netdata.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: get gid docker 3 | getent: 4 | database: group 5 | key: docker 6 | 7 | - name: 'Creating netdata folder paths' 8 | become: yes 9 | file: 'path={{item}} state=directory mode=0777 owner={{user.userid}} group={{user.groupid}}' 10 | with_items: 11 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/var/lib" 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/var/cache" -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/ntopng.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Creating paths 3 | become: yes 4 | file: 5 | path: "{{item}}" 6 | state: directory 7 | mode: 0775 8 | owner: 999 9 | group: 999 10 | with_items: 11 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config" 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data" 13 | 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/ombi.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check JSON exists 3 | stat: 4 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/appsettings.json" 5 | register: jsonfile 6 | 7 | - name: Make sure directory is present 8 | file: 9 | path: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}" 10 | state: directory 11 | 12 | - name: 'Download {{ pgrole }} appsettings.json config file' 13 | get_url: 14 | url: https://raw.githubusercontent.com/tidusjar/Ombi/master/src/Ombi/appsettings.json 15 | dest: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/appsettings.json" 16 | owner: '{{ user.userid }}' 17 | group: '{{ user.groupid }}' 18 | force: no 19 | ignore_errors: True 20 | when: not jsonfile.stat.exists 21 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/paperless.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create redis 3 | docker_container: 4 | name: broker 5 | image: docker.io/library/redis:7 6 | volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/redis:/data" 8 | restart_policy: always 9 | networks: 10 | - name: traefik_proxy 11 | 12 | - name: Create mariadb 13 | docker_container: 14 | name: mariadb 15 | image: docker.io/library/mariadb:11 16 | restart_policy: always 17 | volumes: 18 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/mariadb:/var/lib/mysql" 19 | env: 20 | MARIADB_HOST: paperless 21 | MARIADB_DATABASE: paperless 22 | MARIADB_USER: paperless 23 | MARIADB_PASSWORD: paperless 24 | MARIADB_ROOT_PASSWORD: paperless 25 | networks: 26 | - name: traefik_proxy 27 | 28 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/postgresql15.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Deploying db-{{pgrole}}' 3 | docker_container: 4 | name: 'db-{{pgrole}}' 5 | recreate: true 6 | image: 'postgres:15' 7 | pull: yes 8 | volumes: 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/var/lib/postgresql/data" 10 | env: 11 | POSTGRES_USER: "{{pgrole}}" 12 | POSTGRES_PASSWORD: "{{pgrole}}" 13 | restart_policy: always 14 | networks: 15 | - name: 'traefik_proxy' 16 | state: started 17 | healthcheck: 18 | test: ["CMD", "pg_isready"] 19 | interval: 30s 20 | timeout: 20s 21 | retries: 3 22 | 23 | - name: Wait for 10 seconds before continuing 24 | wait_for: 25 | timeout: 10 26 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/postgresql16.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Deploying db-{{pgrole}}' 3 | docker_container: 4 | name: 'db-{{pgrole}}' 5 | recreate: true 6 | image: 'postgres:16-alpine' 7 | pull: yes 8 | volumes: 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/var/lib/postgresql/data" 10 | env: 11 | POSTGRES_USER: "{{pgrole}}" 12 | POSTGRES_PASSWORD: "{{pgrole}}" 13 | restart_policy: always 14 | networks: 15 | - name: 'traefik_proxy' 16 | state: started 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U {{ pgrole }}"] 19 | start_period: 60s 20 | 21 | - name: Wait for 10 seconds before continuing 22 | wait_for: 23 | timeout: 10 24 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/prowlarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Creating scripts and plugins paths 3 | become: yes 4 | file: 'path={{item}} state=directory mode=0775 owner={{user.userid}} group={{user.groupid}}' 5 | with_items: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/Custom" 7 | 8 | - name: Copy content of Custom 'files' 9 | copy: 10 | src: "{{ settings.source }}//includes/dockerapps/templates/Torrentio/Custom/" 11 | dest: "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/Custom/" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/qbitorrentvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - set_fact: 3 | vpn: "wireguard" 4 | - set_fact: 5 | vpn_specific: 6 | wireguard: 7 | sysctls: "net.ipv4.conf.all.src_valid_mark=1" 8 | privileged: true 9 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/rdtclient.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Architecture system 3 | shell: dpkg --print-architecture 4 | register: architecture 5 | 6 | - name: set fact 7 | set_fact: 8 | architecture: "{{ architecture.stdout }}" 9 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/rtorrentvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - pause: 3 | prompt: "Serveur VPN utilisé ( openvpn ou wireguard uniquement )" 4 | echo: yes 5 | register: vpn 6 | - set_fact: 7 | vpn: "{{ vpn.user_input }}" 8 | - pause: 9 | prompt: "Port forwarded ouvert sur votr serveur vpn pour rtorrent (ex: 45000)" 10 | echo: yes 11 | register: portforwarded 12 | - set_fact: 13 | portforwarded: "{{ portforwarded.user_input }}" 14 | - name: Checking for existing app data 15 | stat: 16 | path: '{{ settings.storage }}/docker/{{user.name}}/rtorrentvpn/rtorrent/config/rtorrent.rc' 17 | register: rccheck 18 | - set_fact: 19 | vpn_specific: 20 | openvpn: 21 | capabilities: "NET_ADMIN" 22 | wireguard: 23 | sysctls: "net.ipv4.conf.all.src_valid_mark=1" 24 | privileged: true 25 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/stremiosaga.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - pause: 4 | prompt: "TMDB_API_KEY" 5 | echo: yes 6 | register: tmdb_api_key -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/syncthing.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: xmlcheck 3 | stat: 4 | path: "opt/seedbox/docker/{{ lookup('env','USER') }}/{{pgrole}}/config/config.xml" 5 | register: xmlcheck 6 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/tautulli.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Creating scripts and plugins paths 3 | become: yes 4 | file: 'path={{item}} state=directory mode=0775 owner={{user.userid}} group={{user.groupid}}' 5 | with_items: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/scripts" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/plugins" 8 | 9 | 10 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/tmdb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check if TMDB_API_KEY are present 3 | set_fact: 4 | tmdb_api_key_exists: "{{ not (tmdb.apikey is undefined or tmdb.apikey is none or (tmdb.apikey | trim | length == 0)) }}" 5 | 6 | - name: Ask TMDB_API_KEY if missing 7 | pause: 8 | prompt: "Please enter your TMDB_API_KEY" 9 | echo: no 10 | register: tmdb_api_key_input 11 | when: not tmdb_api_key_exists 12 | 13 | - name: Update TMDB_API_KEY 14 | set_fact: 15 | tmdb: 16 | apikey: "{{ tmdb_api_key_input.user_input if not tmdb_api_key_exists else tmdb.apikey }}" 17 | 18 | - name: Add TMDB_API_KEY in the vault 19 | shell: | 20 | source ${SETTINGS_SOURCE}/profile.sh 21 | manage_account_yml tmdb.apikey "{{ tmdb.apikey }}" 22 | args: 23 | executable: /bin/bash 24 | when: tmdb_api_key_input is defined -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/transmissionvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: prompt for provider 3 | pause: 4 | prompt: "Enter value for OPENVPN_PROVIDER" 5 | echo: "yes" 6 | register: myregister 7 | - name: set var 8 | set_fact: 9 | provider: "{{ myregister.user_input }}" 10 | - name: prompt for username 11 | pause: 12 | prompt: "Enter value for OPENVPN_USERNAME" 13 | echo: "yes" 14 | register: myregister 15 | - name: set var 16 | set_fact: 17 | username: "{{ myregister.user_input }}" 18 | - name: prompt for password 19 | pause: 20 | prompt: "Enter value for OPENVPN_PASSWORD" 21 | echo: "yes" 22 | register: myregister 23 | - name: set var 24 | set_fact: 25 | password: "{{ myregister.user_input }}" 26 | - name: prompt for network 27 | pause: 28 | prompt: "Enter value for LOCAL_NETWORK (ex 192.168.1.0/24)" 29 | echo: "yes" 30 | register: myregister 31 | - name: set var 32 | set_fact: 33 | mynetwork: "{{ myregister.user_input }}" 34 | - name: prompt for config 35 | pause: 36 | prompt: "Enter value for OPENVPN_CONFIG (Nom fichier sans la terminaison opvn)" 37 | echo: "yes" 38 | register: myregister 39 | - name: set var 40 | set_fact: 41 | config: "{{ myregister.user_input }}" 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /includes/dockerapps/pretasks/zilean.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Launch Pretask 3 | include_tasks: "{{ settings.source }}/includes/dockerapps/pretasks/stremio/stremio_base.yml" 4 | 5 | - name: Set PostgreSQL variables for Zilean 6 | set_fact: 7 | app_name: "Zilean" 8 | postgres_container: "stremio-postgres" 9 | postgres_user: "stremio" 10 | postgres_password: "stremio" 11 | required_databases: 12 | - zilean 13 | 14 | - name: Setup PostgreSQL for Zilean 15 | include_tasks: "{{ settings.source }}/includes/dockerapps/pretasks/stremio/postgres_setup.yml" 16 | -------------------------------------------------------------------------------- /includes/dockerapps/pureftpd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: launch pure_ftp 6 | docker_container: 7 | image: stilliard/pure-ftpd:hardened 8 | name: pureftpd 9 | ports: 10 | - "21:21" 11 | - "30000-30099:30000-30099" 12 | env: 13 | FTP_MAX_CLIENTS: "50" 14 | FTP_MAX_CONNECTIONS: "10" 15 | FTP_PASSIVE_PORTS: "30000:30099" 16 | PUBLICHOST: "{{ network.ipv4 }}" 17 | UID: "{{ lookup('env','MYUID') }}" 18 | GID: "{{ lookup('env','MYGID') }}" 19 | FTP_USER_NAME: "{{ user.name }}" 20 | FTP_USER_PASS: "{{ user.pass }}" 21 | FTP_USER_HOME: "/home/{{ lookup('env','USER') }}" 22 | state: started 23 | restart_policy: unless-stopped 24 | volumes: 25 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/pureftpd/config:/etc/pure-ftpd/passwd:rw" 26 | - "/home/{{ lookup('env','USER') }}:/home/{{ lookup('env','USER') }}" 27 | - '/etc/localtime:/etc/localtime:ro' 28 | 29 | -------------------------------------------------------------------------------- /includes/dockerapps/recyclarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://recyclarr.dev/wiki/getting-started/ 3 | 4 | - hosts: localhost 5 | gather_facts: false 6 | tasks: 7 | 8 | - name: Creating paths 9 | become: yes 10 | file: "path={{item}} state=directory mode=0775 owner={{ lookup('env','MYUID') }} group={{ lookup('env','MYGID') }}" 11 | with_items: 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/recyclarr" 13 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/recyclarr/config" 14 | 15 | - name: Create a data container 16 | community.docker.docker_container: 17 | name: recyclarr 18 | image: ghcr.io/recyclarr/recyclarr 19 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" 20 | volumes: 21 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/recyclarr/config:/config" 22 | env: 23 | TZ: "Europe/Paris" 24 | networks: 25 | - name: traefik_proxy 26 | 27 | - name: Run a simple command (argv) 28 | community.docker.docker_container_exec: 29 | container: recyclarr 30 | command: /bin/bash -c "recyclarr config create" 31 | chdir: /root -------------------------------------------------------------------------------- /includes/dockerapps/templates/ansible/ansible.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: make sure dir is present 6 | file: 7 | path: "{{ settings.source }}/tmp" 8 | state: directory 9 | owner: "{{ lookup('env','USER') }}" 10 | - name: make sure file is present 11 | file: 12 | path: "{{ item }}" 13 | state: touch 14 | owner: "{{ lookup('env','USER') }}" 15 | with_items: 16 | - "{{ lookup('env','TMPNAME') }}" 17 | - "{{ lookup('env','TMPDOMAIN') }}" 18 | - "{{ lookup('env','TMPGROUP') }}" 19 | - name: 20 | shell: | 21 | echo {{user.name}} > {{ lookup('env','TMPNAME') }} 22 | echo {{user.domain}} > {{ lookup('env','TMPDOMAIN') }} 23 | echo {{user.group}} > {{ lookup('env','TMPGROUP') }} -------------------------------------------------------------------------------- /includes/dockerapps/templates/authelia/users.yml.j2: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # Users Database # 3 | ############################################################### 4 | 5 | # List of users 6 | users: 7 | "{{ lookup('env','USER') }}": 8 | disabled: false 9 | displayname: "{{ lookup('env','USER') }}" 10 | password: "{{ password.stdout }}" 11 | email: "{{ user.mail }}" 12 | groups: 13 | - admins 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/blackhole/blackhole.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/blackhole" 3 | docker compose up blackhole -d 4 | #docker network connect traefik_proxy blackhole -------------------------------------------------------------------------------- /includes/dockerapps/templates/blackhole/blackhole4k.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/blackhole" 3 | docker compose up blackhole4k -d 4 | docker network connect traefik_proxy blackhole4k -------------------------------------------------------------------------------- /includes/dockerapps/templates/blackhole/repair.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/blackhole" 3 | docker compose up repair -d 4 | docker network connect traefik_proxy repair -------------------------------------------------------------------------------- /includes/dockerapps/templates/blackhole/repair4k.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/blackhole" 3 | docker compose up repair4k -d 4 | docker network connect traefik_proxy repair4k -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/flaresolverr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Deploying flaresolverr' 3 | docker_container: 4 | name: 'flaresolverr' 5 | image: 'ghcr.io/flaresolverr/flaresolverr:pr-1282' 6 | env: 7 | CAPTCHA_SOLVER: 'harvester' 8 | HARVESTER_ENDPOINT: 'https://127.0.0.1:5000/token' 9 | LOG_LEVEL: 'info' 10 | pull: yes 11 | restart_policy: unless-stopped 12 | networks: 13 | - name: traefik_proxy 14 | state: started 15 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/hsqldb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying db-{{pgrole}}' 8 | docker_container: 9 | name: 'sismics_reader_hsqldb' 10 | recreate: true 11 | image: 'sismics/hsqldb:2.3.0' 12 | pull: yes 13 | volumes: 14 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/data" 15 | - '/etc/localtime:/etc/localtime:ro' 16 | env: 17 | DB_NAME: "reader" 18 | restart_policy: unless-stopped 19 | networks: 20 | - name: '{{pgrole}}-net' 21 | state: started 22 | 23 | - name: Wait for 10 seconds before continuing 24 | wait_for: 25 | timeout: 10 26 | 27 | - name: Add '{{pgrole}}-net' to network 28 | docker_network: 29 | name: '{{pgrole}}-net' 30 | connected: 31 | - '{{ pgrole }}' 32 | appends: yes 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/mariadb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying db-{{pgrole}}' 8 | docker_container: 9 | name: 'db-{{pgrole}}' 10 | recreate: true 11 | image: 'lscr.io/linuxserver/mariadb' 12 | pull: yes 13 | volumes: 14 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/config" 15 | - '/etc/localtime:/etc/localtime:ro' 16 | env: 17 | MYSQL_ROOT_PASSWORD: "{{user.pass}}" 18 | MYSQL_USER: "{{pgrole}}" 19 | MYSQL_PASSWORD: "{{pgrole}}" 20 | MYSQL_DATABASE: "{{pgrole}}" 21 | PUID: "{{ lookup('env','MYUID') }}" 22 | PGID: "{{ lookup('env','MYGID') }}" 23 | restart_policy: unless-stopped 24 | networks: 25 | - name: '{{pgrole}}-net' 26 | state: started 27 | container_default_behavior: "compatibility" 28 | init: false 29 | 30 | - name: Wait for 10 seconds before continuing 31 | wait_for: 32 | timeout: 10 33 | 34 | - name: Add '{{pgrole}}-net' to network 35 | docker_network: 36 | name: '{{pgrole}}-net' 37 | connected: 38 | - '{{ pgrole }}' 39 | appends: yes 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/memcached.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying memcached-{{pgrole}}' 8 | docker_container: 9 | name: 'memcached-{{pgrole}}' 10 | recreate: true 11 | image: 'memcached' 12 | pull: yes 13 | restart_policy: unless-stopped 14 | networks: 15 | - name: '{{pgrole}}-net' 16 | state: started 17 | 18 | - name: Wait for 10 seconds before continuing 19 | wait_for: 20 | timeout: 10 21 | 22 | - name: Add '{{pgrole}}-net' to network 23 | docker_network: 24 | name: '{{pgrole}}-net' 25 | connected: 26 | - '{{ pgrole }}' 27 | appends: yes 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/postgresql.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying db-{{pgrole}}' 8 | docker_container: 9 | name: 'db-{{pgrole}}' 10 | recreate: true 11 | image: 'postgres' 12 | pull: yes 13 | volumes: 14 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/var/lib/postgresql/data" 15 | - '/etc/localtime:/etc/localtime:ro' 16 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/init:/docker-entrypoint-initdb.d" 17 | env: 18 | POSTGRES_USER: "{{pgrole}}" 19 | POSTGRES_PASSWORD: "{{pgrole}}" 20 | POSTGRES_DB: "{{pgrole}}" 21 | restart_policy: unless-stopped 22 | networks: 23 | - name: '{{pgrole}}-net' 24 | state: started 25 | 26 | - name: Wait for 10 seconds before continuing 27 | wait_for: 28 | timeout: 10 29 | 30 | - name: Add '{{pgrole}}-net' to network 31 | docker_network: 32 | name: '{{pgrole}}-net' 33 | connected: 34 | - '{{ pgrole }}' 35 | appends: yes 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/postgresqldb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying db-{{pgrole}}' 8 | docker_container: 9 | name: 'db-{{pgrole}}' 10 | recreate: true 11 | image: 'postgres' 12 | pull: yes 13 | volumes: 14 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}:/var/lib/postgresql/data" 15 | - '/etc/localtime:/etc/localtime:ro' 16 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/init:/docker-entrypoint-initdb.d" 17 | env: 18 | POSTGRES_USER: "{{pgrole}}" 19 | POSTGRES_PASSWORD: "{{pgrole}}" 20 | POSTGRES_DB: "{{pgrole}}" 21 | restart_policy: unless-stopped 22 | networks: 23 | - name: '{{pgrole}}-net' 24 | state: started 25 | 26 | - name: Wait for 10 seconds before continuing 27 | wait_for: 28 | timeout: 10 29 | 30 | - name: Add '{{pgrole}}-net' to network 31 | docker_network: 32 | name: '{{pgrole}}-net' 33 | connected: 34 | - '{{ pgrole }}' 35 | appends: yes 36 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/redis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create {{pgrole}}-net network 3 | docker_network: 4 | name: '{{pgrole}}-net' 5 | state: present 6 | 7 | - name: 'Deploying redis' 8 | docker_container: 9 | name: 'redis-{{pgrole}}' 10 | image: 'redis' 11 | pull: yes 12 | restart_policy: unless-stopped 13 | networks: 14 | - name: '{{pgrole}}-net' 15 | state: started 16 | 17 | - name: Add '{{pgrole}}-net' to network 18 | docker_network: 19 | name: '{{pgrole}}-net' 20 | connected: 21 | - '{{ pgrole }}' 22 | appends: yes 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/rutorrent_multi_traefik_labels.yml.j2: -------------------------------------------------------------------------------- 1 | {% set fqdn = pgrole ~ '.' ~ user.domain %} 2 | 3 | traefik.enable: 'true' 4 | ## middleware auth 5 | traefik.http.middlewares.{{pgrole}}-auth.basicauth.users: "{{ myhtpasswd }}" 6 | ## HTTP Routers 7 | traefik.http.routers.{{pgrole}}-rtr.entrypoints: 'http,https' 8 | traefik.http.routers.{{pgrole}}-rtr.rule: 'Host(`{{ fqdn }}`)' 9 | traefik.http.routers.{{pgrole}}-rtr.tls: 'true' 10 | ## Middlewares 11 | traefik.http.routers.{{pgrole}}-rtr.middlewares: "{{pgrole}}-auth" 12 | ## HTTP Services 13 | traefik.http.routers.{{pgrole}}-rtr.service: '{{pgrole}}-svc' 14 | traefik.http.services.{{pgrole}}-svc.loadbalancer.server.port: "{{ intport }}" 15 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/generique/traefik_labels.yml.j2: -------------------------------------------------------------------------------- 1 | traefik.enable: 'true' 2 | ## HTTP Routers 3 | traefik.http.routers.{{pgrole}}-rtr.entrypoints: 'http,https' 4 | traefik.http.routers.{{pgrole}}-rtr.rule: 'Host(`{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{ user.domain }}`)' 5 | traefik.http.routers.{{pgrole}}-rtr.tls: 'true' 6 | ## Middlewares 7 | traefik.http.routers.{{pgrole}}-rtr.middlewares: "{{ 'chain-authelia@file' if check.stat.exists and sub[pgrole].auth == 'authelia' | default(false) 8 | else 'chain-basic-auth@file' if auth_enabled and sub[pgrole].auth == 'basique' | default(false) 9 | else 'chain-oauth@file' if auth_enabled and sub[pgrole].auth == 'oauth' | default(false) 10 | else 'chain-no-auth@file' if auth_enabled and sub[pgrole].auth == 'aucune'}}" 11 | traefik.http.routers.{{pgrole}}-rtr.service: '{{pgrole}}-svc' 12 | traefik.http.routers.{{pgrole}}-rtr.tls.certresolver: 'letsencrypt' 13 | ## HTTP Services 14 | traefik.http.services.{{pgrole}}-svc.loadbalancer.server.port: "{{ intport }}" 15 | {# AJOUT DES SPECIFIQUES #} 16 | {% for ligne in extra_labels|list %} 17 | {{ ligne }}: "{{ extra_labels[ligne] }}" 18 | {% endfor %} 19 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/imagmaid/.env.j2: -------------------------------------------------------------------------------- 1 | PLEX_PATH=/plex/config/Library/Application Support/Plex Media Server 2 | MODE=remove 3 | PLEX_URL=http://plex:32400 4 | PLEX_TOKEN={{plex.token}} 5 | TIMEOUT=600 6 | SLEEP=60 7 | IGNORE_RUNNING=False 8 | LOCAL_DB=False 9 | USE_EXISTING=True 10 | PHOTO_TRANSCODER=True 11 | EMPTY_TRASH=True 12 | CLEAN_BUNDLES=True 13 | OPTIMIZE_DB=True 14 | TRACE=False 15 | LOG_REQUESTS=False -------------------------------------------------------------------------------- /includes/dockerapps/templates/iptables/defaults/main.yml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | firewall_state: started 3 | firewall_enabled_at_boot: true 4 | 5 | firewall_flush_rules_and_chains: true 6 | 7 | firewall_allowed_tcp_ports: 8 | - "{{ ssh.stdout }}" 9 | - "3468" 10 | firewall_allowed_udp_ports: [] 11 | firewall_forwarded_tcp_ports: [] 12 | firewall_forwarded_udp_ports: [] 13 | firewall_additional_rules: [] 14 | firewall_enable_ipv6: false 15 | firewall_ip6_additional_rules: [] 16 | firewall_log_dropped_packets: true 17 | 18 | # Set to true to ensure other firewall management software is disabled. 19 | firewall_disable_firewalld: false 20 | firewall_disable_ufw: false 21 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/iptables/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: true 4 | vars_files: 5 | - defaults/main.yml 6 | 7 | tasks: 8 | - name: 'Register SSH' 9 | shell: "cat {{ settings.storage }}/variables/ssh" 10 | register: ssh 11 | ignore_errors: True 12 | 13 | - name: Run geerlingguy.firewall 14 | include_role: 15 | name: geerlingguy.firewall 16 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/jellygrail/jellygrail.sh.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/jellygrail" 4 | chmod +x PREPARE.SH _MOUNT.SH 5 | sudo ./PREPARE.SH 6 | docker restart jellygrail 7 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/nextcloud/turnserver.conf.j2: -------------------------------------------------------------------------------- 1 | listening-port=3478 2 | fingerprint 3 | use-auth-secret 4 | static-auth-secret={{secret.stdout}} 5 | realm=coturn 6 | total-quota=100 7 | bps-capacity=0 8 | stale-nonce 9 | no-multicast-peers 10 | cli-password=$5$79a316b350311570$81df9cfb9af7f5e5a76eada31e7097b663a0670f99a3c07ded3f1c8e59c5658a 11 | external-ip={{network.ipv4}} 12 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/ntopngsys/ntopngsys.toml.j2: -------------------------------------------------------------------------------- 1 | [http.routers] 2 | [http.routers.ntopngsys-rtr] 3 | entryPoints = ["http,https"] 4 | rule = "Host(`{{sub.ntopngsys.ntopngsys if sub_enabled else pgrole}}.{{user.domain}}`)" 5 | tls = true 6 | {% if check.stat.exists and sub[pgrole].auth == 'authelia' %} 7 | middlewares = "chain-authelia@file" 8 | {% endif %} 9 | {% if auth_enabled and sub[pgrole].auth == 'basique' %} 10 | middlewares = "chain-basic-auth@file" 11 | {% endif %} 12 | {% if auth_enabled and sub[pgrole].auth == 'oauth' %} 13 | middlewares = "chain-oauth@file" 14 | {% endif %} 15 | service = "ntopngsys-svc" 16 | [http.routers.ntopngsys-rtr.tls] 17 | certresolver = "letsencrypt" 18 | 19 | [http.services] 20 | [http.services.ntopngsys-svc] 21 | [http.services.ntopngsys-svc.loadBalancer] 22 | passHostHeader = true 23 | [[http.services.ntopngsys-svc.loadBalancer.servers]] 24 | url = "http://172.17.0.1:3000" 25 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/picapport/picapport.properties.j2: -------------------------------------------------------------------------------- 1 | robot.root.0.path=/home/{{ user.name }}/Medias/photos 2 | foto.jpg.usecache=2 3 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/piped/configure-instance.yml.j2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | frontend=piped.{{user.domain}} 4 | backend=pipedapi.{{user.domain}} 5 | proxy=pipedproxy.{{user.domain}} 6 | reverseproxy=nginx 7 | 8 | rm -rf config/ 9 | rm -f docker-compose.yml 10 | 11 | cp -r {{ settings.storage }}/docker/{{ lookup('env','USER') }}/piped/template/ {{ settings.storage }}/docker/{{ lookup('env','USER') }}/piped/config/ 12 | 13 | sed -i "s/FRONTEND_HOSTNAME/$frontend/g" {{ settings.storage }}/docker/{{ lookup('env','USER') }}/piped/config/* 14 | sed -i "s/BACKEND_HOSTNAME/$backend/g" {{ settings.storage }}/docker/{{ lookup('env','USER') }}/piped/config/* 15 | sed -i "s/PROXY_HOSTNAME/$proxy/g" {{ settings.storage }}/docker/{{ lookup('env','USER') }}/piped/config/* 16 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/piped/hyperpipe.toml.j2: -------------------------------------------------------------------------------- 1 | [http.routers] 2 | [http.routers.hyperpipe-rtr] 3 | entryPoints = ["https"] 4 | rule = "Host(`youtube.{{user.domain}}`)" 5 | service = "hyperpipe-svc" 6 | middlewares = ["chain-no-auth"] 7 | [http.routers.hyperpipe-rtr.tls] 8 | certresolver = "letsencrypt" 9 | 10 | [http.services] 11 | [http.services.hyperpipe-svc] 12 | [http.services.hyperpipe-svc.loadBalancer] 13 | passHostHeader = true 14 | [[http.services.hyperpipe-svc.loadBalancer.servers]] 15 | url = "http://{{network.ipv4}}:8081" -------------------------------------------------------------------------------- /includes/dockerapps/templates/plausible/clickhouse-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | warning 4 | true 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/plausible/clickhouse-user-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | 7 | 8 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/plausible/create_db_clickhouse.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | clickhouse client -n <<-EOSQL 5 | CREATE DATABASE plausible; 6 | EOSQL -------------------------------------------------------------------------------- /includes/dockerapps/templates/plex/tasks/settings.yml: -------------------------------------------------------------------------------- 1 | --- 2 | gpu: 3 | intel: yes 4 | nvidia: 5 | enabled: no 6 | driver: 410.78 -------------------------------------------------------------------------------- /includes/dockerapps/templates/qdebrid/docker-compose.yml.j2: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | 5 | qdebrid: 6 | container_name: qdebrid 7 | image: ghcr.io/sushydev/qdebrid:main 8 | restart: unless-stopped 9 | volumes: 10 | - ./qdebrid.yml:/app/config.yml 11 | - /home/{{user.name}}/scripts/qdebrid:/mnt/scripts 12 | networks: 13 | traefik_proxy: 14 | 15 | networks: 16 | traefik_proxy: 17 | external: true 18 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/qdebrid/qdebrid_zurg_binarie.yml.j2: -------------------------------------------------------------------------------- 1 | settings: 2 | real_debrid: 3 | token: "{{zurg.token}}" 4 | radarr: 5 | host: "http://radarr:7878" 6 | token: "{{sub.radarr.api}}" 7 | sonarr: 8 | host: "http://sonarr:8989" 9 | token: "{{sub.sonarr.api}}" 10 | zurg: 11 | host: "http://{{network.ipv4}}:9999" 12 | 13 | # si zurg en binarie 14 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/qdebrid/qdebrid_zurg_docker.yml.j2: -------------------------------------------------------------------------------- 1 | settings: 2 | qdebrid: 3 | save_path: "/mnt/zurg/__all__" 4 | min_file_size: 100000000 5 | real_debrid: 6 | token: "{{zurg.token}}" 7 | radarr: 8 | host: "http://radarr:7878" 9 | token: "{{sub.radarr.api}}" 10 | sonarr: 11 | host: "http://sonarr:8989" 12 | token: "{{sub.sonarr.api}}" 13 | zurg: 14 | host: "http://zurg:9999" 15 | 16 | # zurg docker 17 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/ssh/defaults/main.yml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | security_ssh_port: "{{ ssh }}" 3 | security_ssh_password_authentication: "yes" 4 | security_ssh_permit_root_login: "yes" 5 | security_ssh_permit_empty_password: "no" 6 | security_ssh_challenge_response_auth: "no" 7 | security_ssh_gss_api_authentication: "no" 8 | security_ssh_x11_forwarding: "no" 9 | security_sshd_state: started 10 | security_ssh_restart_handler_state: restarted 11 | 12 | security_sudoers_passwordless: [] 13 | security_sudoers_passworded: [] 14 | 15 | security_autoupdate_enabled: true 16 | security_autoupdate_blacklist: [] 17 | 18 | # Autoupdate mail settings used on Debian/Ubuntu only. 19 | security_autoupdate_reboot: "false" 20 | security_autoupdate_reboot_time: "03:00" 21 | security_autoupdate_mail_to: "" 22 | security_autoupdate_mail_on_error: true 23 | 24 | security_fail2ban_enabled: false 25 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/ssh/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | gather_facts: true 4 | vars_prompt: 5 | - name: "ssh" 6 | prompt: "Choisir un port ssh" 7 | private: no 8 | vars_files: 9 | - defaults/main.yml 10 | roles: 11 | - geerlingguy.security 12 | tasks: 13 | - name: Set SSH variable 14 | shell: echo "{{ security_ssh_port }}" > {{ settings.storage }}/variables/ssh 15 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/traefik/middlewares-chains.toml.j2: -------------------------------------------------------------------------------- 1 | [http.middlewares] 2 | [http.middlewares.chain-no-auth] 3 | [http.middlewares.chain-no-auth.chain] 4 | middlewares = [ "middlewares-rate-limit", "middlewares-secure-headers"] 5 | 6 | [http.middlewares.chain-basic-auth] 7 | [http.middlewares.chain-basic-auth.chain] 8 | middlewares = [ "middlewares-rate-limit", "middlewares-secure-headers", "middlewares-basic-auth"] 9 | 10 | [http.middlewares.chain-oauth] 11 | [http.middlewares.chain-oauth.chain] 12 | middlewares = [ "middlewares-rate-limit", "middlewares-secure-headers", "middlewares-oauth"] 13 | 14 | [http.middlewares.chain-authelia] 15 | [http.middlewares.chain-authelia.chain] 16 | middlewares = [ "middlewares-rate-limit", "middlewares-secure-headers", "middlewares-authelia"] -------------------------------------------------------------------------------- /includes/dockerapps/templates/traefik/nginx.toml.j2: -------------------------------------------------------------------------------- 1 | [http.routers] 2 | [http.routers.nginx-rtr] 3 | entryPoints = ["http,https"] 4 | rule = "Host(`{{sub[pgrole][pgrole] if sub_enabled else pgrole}}.{{user.domain}}`)" 5 | service = "nginx-svc" 6 | middlewares = ["{{ 'chain-authelia@file' if check.stat.exists and sub[pgrole].auth == 'authelia' | default(false) 7 | else 'chain-basic-auth@file' if auth_enabled and sub[pgrole].auth == 'basique' | default(false) 8 | else 'chain-oauth@file' if auth_enabled and sub[pgrole].auth == 'oauth' | default(false) }}"] 9 | [http.routers.nginx-rtr.tls] 10 | certresolver = "letsencrypt" 11 | 12 | [http.services] 13 | [http.services.nginx-svc] 14 | [http.services.nginx-svc.loadBalancer] 15 | passHostHeader = true 16 | [[http.services.nginx-svc.loadBalancer.servers]] 17 | url = "http://172.17.0.1:81" -------------------------------------------------------------------------------- /includes/dockerapps/templates/ygg-rss-proxy/.env: -------------------------------------------------------------------------------- 1 | YGG_USER : 2 | YGG_PASS : 3 | YGG_URL: 4 | RSS_HOST: 'localhost' 5 | RSS_PORT: '8080' 6 | RSS_SHEMA: 'http' 7 | FLARESOLVERR_SHEMA: 'http' 8 | FLARESOLVERR_HOST: 'localhost' 9 | FLARESOLVERR_PORT: '8191' 10 | GUNICORN_PORT: '8080' 11 | GUNICORN_WORKERS: '4' 12 | GUNICORN_BINDER: '0.0.0.0' 13 | GUNICORN_TIMEOUT: '120' 14 | LOG_PATH: '/app/config/logs/rss-proxy.log' 15 | LOG_LEVEL: 'INFO' 16 | LOG_REDACTED: 'True' 17 | DB_PATH: '/app/config/rss-proxy.db' 18 | SECRET_KEY: 'superkey_that_can_be_changed' 19 | -------------------------------------------------------------------------------- /includes/dockerapps/templates/zurg/config.yml.j2: -------------------------------------------------------------------------------- 1 | # Zurg configuration version 2 | zurg: v1 3 | 4 | token: {{zurg.token}} 5 | 6 | # host: "[::]" 7 | # port: 9999 8 | # username: 9 | # password: 10 | # proxy: 11 | # concurrent_workers: 20 12 | check_for_changes_every_secs: 10 13 | # repair_every_mins: 60 14 | # ignore_renames: false 15 | retain_rd_torrent_name: true 16 | retain_folder_name_extension: true 17 | enable_repair: true 18 | auto_delete_rar_torrents: true 19 | # api_timeout_secs: 15 20 | # download_timeout_secs: 10 21 | # enable_download_mount: false 22 | # rate_limit_sleep_secs: 6 23 | # retries_until_failed: 2 24 | network_buffer_size: 4194304 # 4MB 25 | # serve_from_rclone: false 26 | # verify_download_link: false 27 | # force_ipv6: false# on_library_update: sh plex_update.sh "$@" 28 | 29 | # List of directory definitions and their filtering rules 30 | directories: 31 | torrents: 32 | group: 1 # notice the group now is "all", which means it will have all the torrents of shows+movies combined because this directory is alone in this group 33 | filters: 34 | - regex: /.*/ -------------------------------------------------------------------------------- /includes/dockerapps/thelounge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Commande à saisir pour créer l'utilisateur 3 | debug: 4 | msg: "docker exec --user node -it thelounge thelounge add " 5 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/actualbudget.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'actualbudget' 3 | intport: '5006' 4 | image: 'docker.io/actualbudget/actual-server:latest' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data" 8 | 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | TZ: "Europe/Paris" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/airdcpp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'airdcpp' 3 | 4 | intport: '5600' 5 | 6 | image: 'gangefors/airdcpp-webclient' 7 | 8 | pg_volumes: 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/.airdcpp:rw" 10 | - "{{ lookup('env','HOME') }}/Medias/Downloads:/Downloads:rw" 11 | - "{{ lookup('env','HOME') }}/Medias:/Share:rw" 12 | 13 | pg_env: 14 | PUID: "{{ lookup('env','MYUID') }}" 15 | PGID: "{{ lookup('env','MYGID') }}" 16 | 17 | specific_docker_info: 18 | ports: 19 | - '21248:21248' 20 | - '21248:21248/udp' 21 | - '21249:21249' 22 | 23 | posttasks: 24 | - default_login_and_password 25 | 26 | dlogin: "admin" 27 | dpasswd: "password" 28 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/alfred.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'alfred' 3 | intport: '5000' 4 | image: 'ghcr.io/pukabyte/alfred:latest' 5 | hostname: alfred 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/app/data" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | TZ: "Europe/Paris" 13 | SYMLINK_DIR: "{{ symlink_input.user_input }}" 14 | TORRENTS_DIR: "{{ torrents_input.user_input }}" 15 | DELETE_BEHAVIOR: "files" 16 | SCAN_INTERVAL: "720" 17 | specific_docker_info: 18 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" 19 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/authelia.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'authelia' 3 | intport: '9091' 4 | image: 'authelia/authelia:4.37.5' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/config" 7 | pg_env: 8 | PUID: "{{ lookup('env','MYUID') }}" 9 | PGID: "{{ lookup('env','MYGID') }}" 10 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/autoindex.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'autoindex' 3 | intport: '80' 4 | image: 'dceoy/nginx-autoindex:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/var/lib/nginx/html:ro" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/baikal.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'baikal' 3 | intport: '80' 4 | image: 'ckulka/baikal:nginx' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/var/www/baikal/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/Specific:/var/www/baikal/Specific:rw" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - "/etc/localtime:/etc/localtime:ro" 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/baserow.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'baserow' 3 | intport: '80' 4 | image: 'baserow/baserow:1.33.3' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/baserow/data" 8 | 9 | pg_env: 10 | BASEROW_PUBLIC_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 11 | DATABASE_HOST: "db-{{ pgrole }}" 12 | DATABASE_PORT: "5432" 13 | DATABASE_NAME: "{{ pgrole }}" 14 | DATABASE_USER: "{{ pgrole }}" 15 | DATABASE_PASSWORD: "{{ pgrole }}" 16 | ### EMAIL SETTINGS ### 17 | ### a verifier pas de docs complete ### 18 | # EMAIL_SMTP: "True" 19 | # EMAIL_SMTP_HOST: "servername.ndd.tld" 20 | # EMAIL_SMTP_PORT: "587/465/25" 21 | # EMAIL_SMTP_USER: "user" 22 | # EMAIL_SMTP_PASSWORD: "password" 23 | # EMAIL_SMTP_USE_TLS: "yes/no" 24 | ########### 25 | 26 | pretasks: 27 | - postgresql15 28 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/bazarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'bazarr' 3 | intport: '6767' 4 | image: 'lscr.io/linuxserver/bazarr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | specific_docker_info: 13 | container_default_behavior: "compatibility" 14 | init: false -------------------------------------------------------------------------------- /includes/dockerapps/vars/bookstack.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'bookstack' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/bookstack' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | TZ: "Europe/Paris" 14 | DB_HOST: "db-{{ pgrole }}" 15 | DB_PORT: "3306" 16 | DB_USERNAME: "{{ pgrole }}" 17 | DB_PASSWORD: "{{ pgrole }}" 18 | DB_DATABASE: "{{ pgrole }}" 19 | APP_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 20 | APP_KEY: "{{ appkey.bookstack }}" 21 | 22 | pretasks: 23 | - appkey 24 | - mariadb_officiel 25 | 26 | posttasks: 27 | - default_login_and_password 28 | 29 | dlogin: "admin@admin.com" 30 | dpasswd: "password" 31 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/cadvisor.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'cadvisor' 3 | intport: '8080' 4 | image: 'gcr.io/cadvisor/cadvisor' 5 | pg_volumes: 6 | - /:/rootfs:ro 7 | - /var/run:/var/run:ro 8 | - /sys:/sys:ro 9 | - /var/lib/docker/:/var/lib/docker:ro 10 | - /dev/disk/:/dev/disk:ro 11 | - /etc/localtime:/etc/localtime:ro 12 | pg_env: 13 | PUID: "{{ lookup('env','MYUID') }}" 14 | PGID: "{{ lookup('env','MYGID') }}" 15 | specific_docker_info: 16 | container_default_behavior: compatibility 17 | privileged: yes -------------------------------------------------------------------------------- /includes/dockerapps/vars/calibre.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'calibre' 3 | intport: '8080' 4 | image: 'lscr.io/linuxserver/calibre:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | specific_docker_info: 14 | security_opts: "seccomp:unconfined" -------------------------------------------------------------------------------- /includes/dockerapps/vars/calibreweb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'calibreweb' 3 | intport: '8083' 4 | image: 'lscr.io/linuxserver/calibre-web' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/changedetection.yml: -------------------------------------------------------------------------------- 1 | pgrole: 'changedetection' 2 | intport: '5000' 3 | image: 'lscr.io/linuxserver/changedetection.io:latest' 4 | pg_volumes: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/datastore:/datastore:rw" 6 | pg_env: 7 | PUID: "{{ lookup('env','MYUID') }}" 8 | PGID: "{{ lookup('env','MYGID') }}" 9 | WEBDRIVER_URL: "http://browser-chrome:4444/wd/hub" 10 | PLAYWRIGHT_DRIVER_URL: "ws://sockpuppetbrowser:3000" 11 | BASE_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 12 | 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/chevereto.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'chevereto' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/chevereto:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/data" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | CHEVERETO_DB_HOST: "db-{{ pgrole }}" 12 | CHEVERETO_DB_USERNAME: "{{ pgrole }}" 13 | CHEVERETO_DB_PASSWORD: "{{ pgrole }}" 14 | CHEVERETO_DB_NAME: "{{ pgrole }}" 15 | CHEVERETO_DB_PREFIX: "chv_" 16 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/cloudcmd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'cloudcmd' 3 | intport: '8000' 4 | image: 'coderaiser/cloudcmd' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/root" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - "/:/SERVER" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/codif.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'codif' 3 | intport: '8443' 4 | image: 'ghcr.io/linuxserver/code-server' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - "/etc/localtime:/etc/localtime:ro" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/cops.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'cops' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/cops' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | TZ: "Europe/Paris" 13 | 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/cypht.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'cypht' 3 | intport: '80' 4 | image: 'sailfrog/cypht-docker:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/var/lib/hm3/users" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | CYPHT_AUTH_USERNAME: "{{ user.name }}" 13 | CYPHT_AUTH_PASSWORD: "{{ user.pass }}" 14 | CYPHT_DB_HOST: "db-{{ pgrole }}" 15 | CYPHT_DB_NAME: "{{ pgrole }}" 16 | CYPHT_DB_USER: "{{ pgrole }}" 17 | CYPHT_DB_PASS: "{{ pgrole }}" 18 | CYPHT_SESSION_TYPE: "DB" -------------------------------------------------------------------------------- /includes/dockerapps/vars/dashdot.yml: -------------------------------------------------------------------------------- 1 | pgrole: 'dashdot' 2 | intport: '3001' 3 | image: 'mauricenino/dashdot:latest' 4 | pg_volumes: 5 | - "/:/mnt/host:ro" 6 | - "/etc/localtime:/etc/localtime:ro" 7 | - "/var/run/docker.sock:/var/run/docker.sock" 8 | extra_labels: 9 | com.centurylinklabs.watchtower.enable: "true" 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | TZ: "Europe/Paris" 14 | 15 | specific_docker_info: 16 | privileged: yes 17 | security_opts: "seccomp:unconfined" 18 | shm_size: '1G' -------------------------------------------------------------------------------- /includes/dockerapps/vars/davos.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'davos' 3 | intport: '8080' 4 | image: 'lscr.io/linuxserver/davos' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/config" 7 | - "/home/{{ lookup('env','USER') }}:/home/{{ lookup('env','USER') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/decypharr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'decypharr' 3 | intport: '8282' 4 | image: 'cy01/blackhole:beta' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/app" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | UMASK: "002" 12 | QBIT_PORT: "8282" 13 | specific_docker_info: 14 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" 15 | ports: 16 | - '8282:8282' 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/deluge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'deluge' 3 | intport: '8112' 4 | image: 'lscr.io/linuxserver/deluge' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/digikam.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'digikam' 3 | intport: '3000' 4 | image: 'lscr.io/linuxserver/digikam' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | KEYBOARD: 'fr-fr-azerty- French' 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/dozzle.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'dozzle' 3 | intport: '8080' 4 | image: 'amir20/dozzle' 5 | pg_volumes: 6 | - '/var/run/docker.sock:/var/run/docker.sock' 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/duplicati.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'duplicati ' 3 | intport: '8200' 4 | image: 'lscr.io/linuxserver/duplicati' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/:/source' 9 | - '/mnt/backups:/backups' 10 | 11 | - '/etc/localtime:/etc/localtime:ro' 12 | pg_env: 13 | PUID: "{{ lookup('env','MYUID') }}" 14 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/emby.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'emby' 3 | intport: '8096' 4 | image: 'emby/embyserver' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | specific_docker_info: 14 | ports: 15 | - '8096:8096' -------------------------------------------------------------------------------- /includes/dockerapps/vars/exemple.yml: -------------------------------------------------------------------------------- 1 | ################################################## 2 | # Exemple de fichier pour ajouter une nouvelle 3 | # application 4 | ################################################## 5 | # Modifier les éléments ci dessous 6 | # nom de l appli 7 | # port 8 | # nom de l'image 9 | # Modifier les volumes si nécessaire 10 | ################################################## 11 | 12 | --- 13 | pgrole: 'nom de l appli' # doit être identique au nom du fichier yml 14 | intport: 'port' 15 | image: 'nom de l'image' 16 | pg_volumes: 17 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 18 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 19 | - '/etc/localtime:/etc/localtime:ro' 20 | pg_env: 21 | PUID: "{{ lookup('env','MYUID') }}" 22 | PGID: "{{ lookup('env','MYGID') }}" 23 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/fenrus.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'fenrus' 3 | intport: '3000' 4 | image: 'revenz/fenrus' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/app/data:/app/data" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/app/images:/app/wwwroot/images" 9 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 10 | - '/etc/localtime:/etc/localtime:ro' 11 | pg_env: 12 | PUID: "{{ lookup('env','MYUID') }}" 13 | PGID: "{{ lookup('env','MYGID') }}" 14 | TZ: "Europe/Paris" -------------------------------------------------------------------------------- /includes/dockerapps/vars/filebot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'filebot' 3 | intport: '5800' 4 | image: 'jlesage/filebot:v1.0.2' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - "{{ lookup('env','HOME') }}:/storage:rw" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | 11 | pg_env: 12 | UID: '{{user.userid}}' 13 | GID: '{{user.groupid}}' 14 | TZ: 'Europe/Paris' 15 | # tags spécifiques à ajouter à la construction du docker 16 | #specific_docker_info: 17 | #ports: 18 | #- 'xxx:xxx' 19 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/filebrowser.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'filebrowser' 3 | intport: '8080' 4 | image: 'hurlenko/filebrowser:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - '/:/data' 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | TZ: 'Europe/Paris' 11 | specific_docker_info: 12 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/filerun.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'filerun' 3 | intport: '80' 4 | image: 'filerun/filerun:8.1' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/html:/var/www/html" 7 | - "/home/{{ lookup('env','USER') }}:/user-files" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | APACHE_RUN_USER: "{{ lookup('env','USER') }}" 11 | FR_DB_HOST: "db-{{pgrole}}" 12 | FR_DB_PORT: "3306" 13 | FR_DB_NAME: "{{pgrole}}" 14 | FR_DB_USER: "{{pgrole}}" 15 | FR_DB_PASS: "{{pgrole}}" 16 | APACHE_RUN_USER_ID: "{{ lookup('env','MYUID') }}" 17 | APACHE_RUN_GROUP: "{{ lookup('env','USER') }}" 18 | APACHE_RUN_GROUP_ID: "{{ lookup('env','MYGID') }}" 19 | 20 | 21 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/firefox.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'firefox' 3 | intport: '5800' 4 | image: 'jlesage/firefox:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/shared:/shared" 8 | - '/dev/shm:/dev/shm' 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/firefoxsyncserver.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'firefoxsyncserver' 3 | intport: '5000' 4 | image: 'crazymax/firefox-syncserver:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/data:rw" 7 | - "/etc/localtime:/etc/localtime:ro" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | TZ: "Europe/Paris" 12 | FF_SYNCSERVER_SECRET: "{{ secret_connect }}" 13 | FF_SYNCSERVER_PUBLIC_URL: "{{ url_public }}" 14 | SYNCSERVER_BATCH_UPLOAD_ENABLED: 'true' 15 | FF_SYNCSERVER_FORCE_WSGI_ENVIRON: 'false' 16 | SYNCSERVER_DEBUG_ENABLED: 'true' 17 | FF_SYNCSERVER_ALLOW_NEW_USERS: 'true' 18 | FF_SYNCSERVER_LOGLEVEL: info 19 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/foptimum.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'foptimum' 3 | intport: '9191' 4 | image: 'roseatoni/foptimum' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/pasta_data" 7 | pg_env: 8 | SPEEDTEST_INTERVAL: "900" 9 | PING_INTERVAL: "15" 10 | SERVER_LIST: "1.1.1.1,8.8.8.8" 11 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/freshrss.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'freshrss' 3 | intport: '80' 4 | image: 'ghcr.io/linuxserver/freshrss' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/gethomepage.yml: -------------------------------------------------------------------------------- 1 | pgrole: 'gethomepage' 2 | intport: '3000' 3 | image: 'ghcr.io/gethomepage/homepage:latest' 4 | pg_volumes: 5 | - "/etc/localtime:/etc/localtime:ro" 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/app/config:rw" 7 | - "/var/run/docker/sock:/var/run/docker/sock:ro" 8 | pg_env: 9 | HOMEPAGE_ALLOWED_HOSTS: "{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/gitea.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'gitea' 3 | intport: '3000' 4 | image: 'gitea/gitea:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | USER_UID: "{{ lookup('env','MYUID') }}" 10 | USER_GID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/gitlab.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'gitlab' 3 | intport: '80' 4 | image: 'gitlab/gitlab-ce:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/etc/gitlab" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/logs:/var/log/gitlab" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/var/opt/gitlab" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/goaccess.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'goaccess' 3 | intport: '7880' 4 | image: 'xavierh/goaccess-for-nginxproxymanager:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/traefik/logs:/opt/log/" 7 | pg_env: 8 | PUID: "{{ lookup('env','MYUID') }}" 9 | PGID: "{{ lookup('env','MYGID') }}" 10 | TZ: "Europe/Paris" 11 | LOG_TYPE: "TRAEFIK" 12 | LOG_TYPE_FILE_PATTERN: "access.log" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/gotify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'gotify' 3 | intport: '80' 4 | image: 'gotify/server' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/data" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | GOTIFY_DEFAULTUSER_NAME: "{{ user.name }}" 13 | GOTIFY_DEFAULTUSER_PASS: "{{ user.pass }}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/grocy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'grocy' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/grocy' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/config" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | TZ: "Europe/Paris" 12 | 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/guacamole.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'guacamole' 3 | intport: '8080' 4 | image: 'guacamole/guacamole' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db-{{pgrole}}/init:/initdb:rw" 8 | pg_env: 9 | MYSQL_DATABASE: "{{pgrole}}" 10 | MYSQL_HOSTNAME: "db-{{pgrole}}" 11 | MYSQL_USER: "{{pgrole}}" 12 | MYSQL_PASSWORD: "{{pgrole}}" 13 | PUID: "{{ lookup('env','MYUID') }}" 14 | PGID: "{{ lookup('env','MYGID') }}" 15 | GUACD_HOSTNAME: "guacd" -------------------------------------------------------------------------------- /includes/dockerapps/vars/handbrake.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'handbrake' 3 | intport: '5800' 4 | image: 'jlesage/handbrake' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}/local/{{pgrole}}/watch:/watch:rw" 8 | - "{{ lookup('env','HOME') }}/local/{{pgrole}}/output:/output:rw" 9 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 10 | - '/etc/localtime:/etc/localtime:ro' 11 | pg_env: 12 | PUID: "{{ lookup('env','MYUID') }}" 13 | PGID: "{{ lookup('env','MYGID') }}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/heimdall.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'heimdall' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/heimdall' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/homarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'homarr' 3 | intport: '7575' 4 | image: 'ghcr.io/ajnart/homarr:latest' 5 | pg_volumes: 6 | - '/var/run/docker.sock:/var/run/docker.sock' 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/configs:/app/data/configs" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/icons:/app/public/icons" 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data" 10 | pg_env: 11 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/immich.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'immich' 3 | intport: '2283' 4 | docker_deploy_enabled: false 5 | 6 | 7 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/jackett.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jackett' 3 | intport: '9117' 4 | image: 'lscr.io/linuxserver/jackett:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/jacketttest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jacketttest' 3 | intport: '9117' 4 | image: 'lscr.io/linuxserver/jackett:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | specific_docker_info: 13 | container_default_behavior: "compatibility" 14 | init: false 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/jackettvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jackettvpn' 3 | intport: '9117' 4 | image: 'dyonr/jackettvpn:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | VPN_ENABLED: 'yes' 13 | VPN_TYPE: 'openvpn' 14 | LAN_NETWORK: '172.18.0.0/16' 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/jdownloader.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jdownloader' 3 | intport: '5800' 4 | image: 'jlesage/jdownloader-2' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "/home/{{ lookup('env','USER') }}/filebot:/output:rw" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | USER_ID: "{{ lookup('env','MYUID') }}" 11 | GROUP_ID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/jellyfin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jellyfin' 3 | intport: '8096' 4 | image: 'jellyfin/jellyfin:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/var/run/docker.sock:/var/run/docker.sock' 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | UID: "{{ lookup('env','MYUID') }}" 12 | GID: "{{ lookup('env','MYGID') }}" 13 | JELLYFIN_PublishedServerUrl: "{{sub[pgrole][pgrole] if sub_enabled else pgrole}}.{{user.domain}}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/jellygrail.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jellygrail' 3 | image: 'ghcr.io/laster13/jellygrail:latest' 4 | pg_volumes: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/jellygrail:/jellygrail" 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/Video_Library:/Video_Library:rshared" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/fallbackdata:/mounts/fallback" 8 | - "{{ settings.storage }}/zurg:/mounts/remote_realdebrid" 9 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 10 | traefik_labels_enabled: false 11 | specific_docker_info: 12 | privileged: yes 13 | capabilities: 14 | - MKNOD 15 | - SYS_ADMIN 16 | devices: 17 | - /dev/fuse 18 | - /dev/dri/renderD128 19 | - /dev/dri/card0 20 | security_opts: 21 | - apparmor:unconfined 22 | 23 | 24 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/jellyseerr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jellyseerr' 3 | intport: '5055' 4 | image: 'fallenbagel/jellyseerr:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/app/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | TZ: "Europe/Paris" 13 | LOG_LEVEL: debug 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/jfago.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'jfago' 3 | intport: '8057' 4 | image: 'hrfee/jfa-go' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/data" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/jellyfin:/config" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/kasm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'kasm' 3 | intport: '443' 4 | image: 'lscr.io/linuxserver/kasm:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/opt:/opt" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/profiles:/profiles" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | KASM_PORT: "443" 12 | PUID: "{{ lookup('env','MYUID') }}" 13 | PGID: "{{ lookup('env','MYGID') }}" 14 | specific_docker_info: 15 | ports: 16 | - '3000:3000' 17 | privileged: yes 18 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/kavita.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'kavita' 3 | intport: '5000' 4 | image: 'kizaing/kavita:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/kavita/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/kitana.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'kitana' 3 | intport: '31337' 4 | image: 'pannal/kitana:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/app:/app/data" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/dev/shm:/dev/shm' 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/komga.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'komga' 3 | intport: '8080' 4 | image: 'gotson/komga:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | spring.profiles.active: "claim" -------------------------------------------------------------------------------- /includes/dockerapps/vars/kresus.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'kresus' 3 | intport: '9876' 4 | image: 'bnjbvr/kresus' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | pg_env: 8 | LOCAL_USER_ID: "{{ lookup('env','MYUID') }}" 9 | KRESUS_DB_TYPE: "postgres" 10 | KRESUS_DB_HOST: "db-{{pgrole}}" 11 | KRESUS_DB_PORT: "5432" 12 | KRESUS_DB_USERNAME: "{{pgrole}}" 13 | KRESUS_DB_PASSWORD: "{{pgrole}}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/kuma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'kuma' 3 | intport: '3001' 4 | image: 'louislam/uptime-kuma' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/app/data:rw" 7 | - '/var/run/docker.sock:/var/run/docker.sock' 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/librespeed.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'librespeed' 3 | intport: '80' 4 | image: 'linuxserver/librespeed:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | PASSWORD: 'PASSWORD' -------------------------------------------------------------------------------- /includes/dockerapps/vars/lidarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'lidarr' 3 | intport: '8686' 4 | image: 'lscr.io/linuxserver/lidarr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/linkding.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'linkding' 3 | intport: '9090' 4 | image: 'sissbruecker/linkding:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/etc/linkding/data" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/logarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'logarr' 3 | intport: '80' 4 | image: 'monitorr/logarr-alpha' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/app" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}:{{ settings.storage }}/docker/{{ lookup('env','USER') }}" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/mango.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'mango' 3 | intport: '9000' 4 | image: 'hkalexling/mango' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/root/.config/mango" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/root/mango:/root/mango" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/mattermost.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'mattermost' 3 | intport: '8065' 4 | image: 'mattermost/mattermost-team-edition:6.3' 5 | pg_volumes: 6 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/config:/mattermost/config:rw' 7 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/data:/mattermost/data:rw' 8 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/logs:/mattermost/logs:rw' 9 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/plugins:/mattermost/plugins:rw' 10 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/client-plugins:/mattermost/client/plugins:rw' 11 | - '{{ settings.storage }}/docker/{{user.name}}/{{pgrole}}/bleve-indexes:/mattermost/bleve-indexes:rw' 12 | - '/etc/localtime:/etc/localtime:ro' 13 | pg_env: 14 | TZ: "Europe/Paris" 15 | MM_SQLSETTINGS_DRIVERNAME: "postgres" 16 | MM_SQLSETTINGS_DATASOURCE: "postgres://{{pgrole}}:{{pgrole}}@db-{{pgrole}}:5432/{{pgrole}}?sslmode=disable&connect_timeout=10" 17 | MM_BLEVESETTINGS_INDEXDIR: "/mattermost/bleve-indexes" 18 | MM_SERVICESETTINGS_SITEURL: "https://{{sub[pgrole][pgrole] if sub_enabled else pgrole}}.{{ user.domain }}" 19 | 20 | posttasks: 21 | - "postgresql" 22 | - "mattermost_post" -------------------------------------------------------------------------------- /includes/dockerapps/vars/mediawiki.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'mediawiki' 3 | intport: '80' 4 | image: 'mediawiki' 5 | pg_volumes: 6 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/medusa.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'medusa' 3 | intport: '8081' 4 | image: 'lscr.io/linuxserver/medusa' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/mellow.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'mellow' 3 | intport: '5060' 4 | image: 'voidp/mellow' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/usr/src/app/data/" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/metube.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'metube' 3 | intport: '8081' 4 | image: 'alexta69/metube:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/downloads:/downloads:rw" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | TZ: 'Europe/Paris' 11 | DOWNLOAD_DIR: '/downloads/videos' 12 | AUDIO_DOWNLOAD_DIR: '/downloads/audios' 13 | STATE_DIR: '/config' 14 | OUTPUT_TEMPLATE: '%(uploader)s/%(title)s.%(ext)s' 15 | specific_docker_info: 16 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" 17 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/microbin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'microbin' 3 | intport: '8080' 4 | image: 'danielszabo99/microbin' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/pasta_data" 7 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/minecraft.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'minecraft' 3 | intport: '8080' 4 | image: 'tekgator/docker-mcmyadmin' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data:" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/mkvtoolnix.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'mkvtoolnix' 3 | intport: '5800' 4 | image: 'jlesage/mkvtoolnix' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/storage:/storage:rw" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/monicahq.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'monicahq' 3 | intport: '80' 4 | image: 'monica:apache' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/var/www/html/storage" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | DB_HOST: "db-{{ pgrole }}" 13 | DB_USERNAME: "root" 14 | DB_PASSWORD: "{{user.pass}}" 15 | DB_NAME: "{{ pgrole }}" 16 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/monitorr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'monitorr' 3 | intport: '80' 4 | image: 'monitorr/monitorr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/app" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/myhomepage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'myhomepage' 3 | intport: '80' 4 | image: 'ghcr.io/ajnart/mhp' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/data" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | GOTIFY_DEFAULTUSER_NAME: "{{ user.name }}" 13 | GOTIFY_DEFAULTUSER_PASS: "{{ user.pass }}" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/n8nio.yml: -------------------------------------------------------------------------------- 1 | pgrole: 'n8nio' 2 | intport: '5678' 3 | image: 'n8nio/n8n' 4 | pg_volumes: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/home/node/.n8n" 6 | Xpg_env: 7 | DB_TYPE: "postgresdb" 8 | DB_POSTGRESDB_DATABASE: "{{ pgrole }}" 9 | DB_POSTGRESDB_HOST: "db-{{ pgrole }}" 10 | DB_POSTGRESDB_PORT: "5432" 11 | DB_POSTGRESDB_USER: "{{ pgrole }}" 12 | DB_POSTGRESDB_PASSWORD: "{{ pgrole }}" 13 | TZ: "Europe/Paris" 14 | WEBHOOK_URL: "https://{{sub[pgrole][pgrole] if sub_enabled else pgrole}}.{{ user.domain }}" 15 | #N8N_LOG_LEVEL: "debug" 16 | N8N_BASIC_AUTH_ACTIVE: "true" 17 | N8N_BASIC_AUTH_USER: "{{ user.name }}" 18 | N8N_BASIC_AUTH_PASSWORD: "{{ user.pass }}" 19 | 20 | pretasks: 21 | - "postgresql16" 22 | 23 | description: "AutomationTool" 24 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/navidrome.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'navidrome' 3 | intport: '4533' 4 | image: 'deluan/navidrome:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/data:rw" 7 | - "{{ lookup('env','HOME') }}/Medias/Music:/music:ro" 8 | 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | ND_SCANSCHEDULE: 1h 12 | ND_LOGLEVEL: info 13 | ND_SESSIONTIMEOUT: 24h 14 | ND_BASEURL: "" 15 | specific_docker_info: 16 | user: "{{ lookup('env','MYUID') }}:{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/netdata.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'netdata' 3 | intport: '19999' 4 | image: 'netdata/netdata' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | - '/sys:/host/sys:ro' 8 | - '/proc:/host/proc:ro' 9 | - '/var/run/docker.sock:/var/run/docker.sock:ro' 10 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/etc:/etc/netdata:rw" 11 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/var/lib:/var/lib/netdata:rw" 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/var/cache:/var/cache/netdata:rw" 13 | - "/etc/passwd:/host/etc/passwd:ro" 14 | - "/etc/group:/host/etc/group:ro" 15 | - "/etc/os-release:/host/etc/os-release:ro" 16 | - "/tmp:/tmp:rw" 17 | pg_env: 18 | PGID: "{{ getent_group['docker'][1] }}" 19 | # tags spécifiques à ajouter à la construction du docker 20 | specific_docker_info: 21 | capabilities: 22 | - SYS_PTRACE -------------------------------------------------------------------------------- /includes/dockerapps/vars/nocodb.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'nocodb' 3 | intport: '8080' 4 | image: 'nocodb/nocodb:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/usr/app/data" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | NC_DB: "mysql2://db-{{ pgrole }}:3306?u={{ pgrole }}&p={{ pgrole }}&d={{ pgrole }}" 10 | 11 | posttasks: 12 | - "mariadb_restart" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/nowshowing.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'nowshowing' 3 | intport: '6878' 4 | image: 'ninthwalker/nowshowing:v2' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/ntopng.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'ntopng' 3 | intport: '3000' 4 | image: 'aerya/ntopng:3.8_Ubuntu_16.04' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/etc/ntopng" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/var/lib/ntopng" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | UID: "{{ lookup('env','MYUID') }}" 11 | GID: "{{ lookup('env','MYGID') }}" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/nzbhydra.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'nzbhydra' 3 | intport: '5076' 4 | image: 'lscr.io/linuxserver/nzbhydra2' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/ombi.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'ombi' 3 | intport: '3579' 4 | image: 'lscr.io/linuxserver/ombi' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/appsettings.json:/opt/{{ pgrole }}/appsettings.json" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/openvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'openvpn' 3 | intport: '7878' 4 | image: 'ghcr.io/linuxserver/openvpn-as' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: '{{user.userid}}' 10 | PGID: '{{user.groupid}}' 11 | TZ: 'Europe/Paris' 12 | # tags spécifiques à ajouter à la construction du docker 13 | specific_docker_info: 14 | ports: 15 | - '943:943' 16 | - '9443:9443' 17 | - '1194:1194' -------------------------------------------------------------------------------- /includes/dockerapps/vars/organizr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'organizr' 3 | intport: '80' 4 | image: 'organizr/organizr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/overseerr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'overseerr' 3 | intport: '5055' 4 | image: 'ghcr.io/linuxserver/overseerr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | TZ: "Europe/Paris" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/paperless.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # creation de l'utilisateur 3 | # docker exec -ti paperless bash -c 'python /usr/src/paperless/src/manage.py createsuperuser' 4 | 5 | pgrole: 'paperless' 6 | intport: '8000' 7 | image: 'ghcr.io/paperless-ngx/paperless-ngx:latest' 8 | pg_volumes: 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/usr/src/paperless/data" 10 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/usr/src/paperless/media" 11 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/usr/src/paperless/export" 12 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/usr/src/paperless/consume" 13 | pg_env: 14 | PUID: "{{ lookup('env','MYUID') }}" 15 | PGID: "{{ lookup('env','MYGID') }}" 16 | PAPERLESS_REDIS: "redis://broker:6379" 17 | PAPERLESS_DBENGINE: "mariadb" 18 | PAPERLESS_DBHOST: "mariadb" 19 | PAPERLESS_DBUSER: "paperless" 20 | PAPERLESS_DBPASS: "paperless" 21 | PAPERLESS_DBPORT: "3306" 22 | PAPERLESS_URL: "https://{{sub[pgrole][pgrole] if sub_enabled else pgrole}}.{{user.domain}}" 23 | PAPERLESS_SECRET_KEY: "{{user.pass}}" 24 | PAPERLESS_TIME_ZONE: "Europe/Paris" 25 | PAPERLESS_OCR_LANGUAGE: "fra" 26 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/pastebin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'pastebin' 3 | intport: '80' 4 | image: 'mkodockx/docker-pastebin' 5 | pg_volumes: 6 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/petio.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'petio' 3 | intport: '7777' 4 | image: 'hotio/petio' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/app/api/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/logs:/app/logs" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/picapport.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'picapport' 3 | intport: '80' 4 | image: 'whatever4711/picapport' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/opt/picapport/.picapport:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | - "/etc/passwd:/etc/passwd/ro" 10 | pg_env: 11 | XMS: "512m" 12 | XMX: "1g" 13 | LC_ALL: "fr_FR.UTF-8" 14 | PUID: "{{ lookup('env','MYUID') }}" 15 | PGID: "{{ lookup('env','MYGID') }}" 16 | specific_docker_info: 17 | user: "{{ user.userid }}:{{ user.groupid }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/pingvin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'pingvin' 3 | intport: '3000' 4 | image: 'stonith404/pingvin-share' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/opt/app/backend/data" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/img:/opt/app/frontend/public/img" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | # API_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 13 | TRUST_PROXY: "true" 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/piwigo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'piwigo' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/piwigo' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/plexautolanguages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'plexautolanguages' 3 | intport: '80' 4 | image: 'remirigal/plex-auto-languages:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PLEX_URL: "http://plex:32400" 10 | PLEX_TOKEN: "{{ plex.token }}" 11 | TZ: "Europe/Paris" 12 | 13 | 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/portainer.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'portainer' 3 | intport: '9000' 4 | image: 'portainer/portainer-ce' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/data" 7 | - "/var/run/docker.sock:/var/run/docker.sock" 8 | - "/etc/localtime:/etc/localtime:ro" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/prowlarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'prowlarr' 3 | intport: '9696' 4 | image: 'hotio/prowlarr:nightly' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/Custom:/config/Definitions/Custom" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 14 | # et remplacer API par votre API prowlarr 15 | #extra_labels: 16 | # traefik.http.routers.prowlarr-rtr-bypass.entrypoints: 'http,https' 17 | # traefik.http.routers.prowlarr-rtr-bypass.rule: 'Headers(`X-Api-Key`, `API`)' 18 | # traefik.http.routers.prowlarr-rtr-bypass.priority: '100' 19 | # traefik.http.routers.prowlarr-rtr-bypass.tls: 'true' 20 | # traefik.http.routers.prowlarr-rtr-bypass.middlewares: 'chain-no-auth@file' 21 | # traefik.http.routers.prowlarr-rtr-bypass.service: 'prowlarr-svc' 22 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/pyload.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'pyload' 3 | intport: '8000' 4 | image: 'lscr.io/linuxserver/pyload' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/downloads:/downloads:rw" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}:rw" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/qbitorrentvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'qbitorrentvpn' 3 | intport: '8080' 4 | image: 'binhex/arch-qbittorrentvpn' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}/qbitorrent:/config/qBittorrent/downloads" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | VPN_ENABLED: 'yes' 14 | VPN_PROV: 'wireguard' 15 | VPN_CLIENT: 'wireguard' 16 | VPN_INPUT_PORTS: '45000' 17 | LAN_NETWORK: '192.168.1.0/24' 18 | dns_servers: '84.200.69.80,37.235.1.174,1.1.1.1,37.235.1.177,84.200.70.40,1.0.0.1' 19 | DEBUG: 'true' 20 | 21 | # tags spécifiques à ajouter à la construction du docker 22 | specific_docker_info: 23 | "{{ vpn_specific[vpn] }}" 24 | 25 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/qbittorrent.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'qbittorrent' 3 | intport: '8080' 4 | image: 'ghcr.io/linuxserver/qbittorrent' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}/local/{{pgrole}}/downloads:/downloads" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | 10 | pg_env: 11 | PUID: '{{user.userid}}' 12 | PGID: '{{user.groupid}}' 13 | TZ: 'Europe/Paris' 14 | # tags spécifiques à ajouter à la construction du docker 15 | specific_docker_info: 16 | ports: 17 | - '6881:6881' -------------------------------------------------------------------------------- /includes/dockerapps/vars/qflood.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'qflood' 3 | intport: '8080' 4 | image: 'cr.hotio.dev/hotio/qflood' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | pg_env: 11 | UID: '{{user.userid}}' 12 | GID: '{{user.groupid}}' 13 | TZ: 'Europe/Paris' 14 | FLOOD_AUTH: 'false' 15 | # tags spécifiques à ajouter à la construction du docker 16 | specific_docker_info: 17 | ports: 18 | - '3000:3000' -------------------------------------------------------------------------------- /includes/dockerapps/vars/radarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'radarr' 3 | intport: '7878' 4 | image: 'lscr.io/linuxserver/radarr:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | #DOCKER_MODS: 'ghcr.io/gilbn/theme.park:radarr' 12 | #TP_DOMAIN: 'theme-park.dev' 13 | #TP_THEME: 'plex' 14 | #Remplacer 'plex' par le theme que vous souhaitez avoir (https://docs.theme-park.dev/theme-options/) 15 | 16 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 17 | # et remplacer API par votre API radarr 18 | #extra_labels: 19 | # traefik.http.routers.radarr-rtr-bypass.entrypoints: 'http,https' 20 | # traefik.http.routers.radarr-rtr-bypass.rule: 'Headers(`X-Api-Key`, `API`)' 21 | # traefik.http.routers.radarr-rtr-bypass.priority: '100' 22 | # traefik.http.routers.radarr-rtr-bypass.tls: 'true' 23 | # traefik.http.routers.radarr-rtr-bypass.middlewares: 'chain-no-auth@file' 24 | # traefik.http.routers.radarr-rtr-bypass.service: 'radarr-svc' 25 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/radarr4k.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'radarr4k' 3 | intport: '7878' 4 | image: 'lscr.io/linuxserver/radarr:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | DOCKER_MODS: 'ghcr.io/gilbn/theme.park:radarr' 12 | #TP_DOMAIN: 'theme-park.dev' 13 | #TP_ADDON: 'radarr-4k-logo' 14 | #TP_THEME: 'plex' 15 | #Remplacer 'plex' par le theme que vous souhaitez avoir (https://docs.theme-park.dev/theme-options/) 16 | 17 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 18 | # et remplacer API par votre API radarr4k 19 | #extra_labels: 20 | # traefik.http.routers.radarr4k-rtr-bypass.entrypoints: 'http,https' 21 | # traefik.http.routers.radarr4k-rtr-bypass.rule: 'Headers(`X-Api-Key`, `API`)' 22 | # traefik.http.routers.radarr4k-rtr-bypass.priority: '100' 23 | # traefik.http.routers.radarr4k-rtr-bypass.tls: 'true' 24 | # traefik.http.routers.radarr4k-rtr-bypass.middlewares: 'chain-no-auth@file' 25 | # traefik.http.routers.radarr4k-rtr-bypass.service: 'radarr4k-svc' 26 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/rdtclient.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'rdtclient' 3 | intport: '6500' 4 | image: "laster13/rdtclient-v39:latest" 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/data/db:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - "{{ lookup('env','HOME') }}/local:/data/downloads" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | - "/usr/bin/rclone:/usr/bin/rclone" 11 | pg_env: 12 | PUID: "{{ lookup('env','MYUID') }}" 13 | PGID: "{{ lookup('env','MYGID') }}" 14 | TZ: "Europe/Paris" 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/readarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'readarr' 3 | intport: '8787' 4 | image: 'hotio/readarr:nightly' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/rflood.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'rflood' 3 | intport: '3000' 4 | image: 'ghcr.io/hotio/rflood' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | pg_env: 11 | PUID: '{{user.userid}}' 12 | PGID: '{{user.groupid}}' 13 | TZ: 'Europe/Paris' 14 | FLOOD_AUTH: 'false' 15 | # tags spécifiques à ajouter à la construction du docker 16 | specific_docker_info: 17 | ports: 18 | - '50000:50000' 19 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/rtorrentvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'rtorrentvpn' 3 | intport: '9080' 4 | image: 'binhex/arch-rtorrentvpn:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/rtorrentvpn/config:/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/rtorrentvpn/data:/data" 8 | - "/home/{{ lookup('env','USER') }}:/home/{{ lookup('env','USER') }}" 9 | - "/etc/timezone:/etc/timezone:ro" 10 | - "/etc/localtime:/etc/localtime:ro" 11 | 12 | pg_env: 13 | VPN_PROV: custom 14 | VPN_ENABLED: "yes" 15 | VPN_CLIENT: "{{vpn}}" 16 | STRICT_PORT_FORWARD: "yes" 17 | ENABLE_PRIVOXY: "yes" 18 | ENABLE_AUTODL_IRSSI: "yes" 19 | ENABLE_RPC2: "yes" 20 | ENABLE_RPC2_AUTH: "yes" 21 | RPC2_USER: "{{user.name}}" 22 | RPC2_PASS: "{{user.pass}}" 23 | ENABLE_WEBUI_AUTH: "no" 24 | LAN_NETWORK: "192.168.1.0/24" 25 | NAME_SERVERS: "209.222.18.222,84.200.69.80,37.235.1.174,1.1.1.1,209.222.18.218,37.235.1.177,84.200.70.40,1.0.0.1" 26 | DEBUG: "false" 27 | PHP_TZ: "Europe/Paris" 28 | UMASK: "002" 29 | PUID: "{{user.userid}}" 30 | PGID: "{{user.groupid}}" 31 | 32 | # tags spécifiques à ajouter à la construction du docker 33 | specific_docker_info: 34 | "{{ vpn_specific[vpn] }}" 35 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/rutorrentcm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'rutorrentcm' 3 | intport: '8080' 4 | image: 'crazymax/rtorrent-rutorrent:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/data" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | pg_env: 11 | PUID: '{{user.userid}}' 12 | PGID: '{{user.groupid}}' 13 | TZ: 'Europe/Paris' 14 | RT_INC_PORT: '50001' 15 | RT_DHT_PORT: '6882' 16 | # tags spécifiques à ajouter à la construction du docker 17 | specific_docker_info: 18 | ports: 19 | - '6882:6882' 20 | - '50001:50001' 21 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 22 | #extra_labels: 23 | # traefik.http.routers.rutorrent-rtr-bypass.rule: 'Path(`/RPC2`)' 24 | # traefik.http.routers.rutorrent-rtr-bypass.priority: '100' 25 | # traefik.http.routers.rutorrent-rtr-bypass.tls: 'true' 26 | # traefik.http.routers.rutorrent-rtr-bypass.middlewares: 'chain-basic-auth@file' 27 | # traefik.http.routers.rutorrent-rtr-bypass.service: 'rutorrent-svc' 28 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/sabnzbd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sabnzbd' 3 | intport: '8080' 4 | image: 'lscr.io/linuxserver/sabnzbd' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/scrutiny.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'scrutiny' 3 | intport: '8080' 4 | image: 'ghcr.io/linuxserver/scrutiny' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | UMASK: '002' 13 | ARGS: "" 14 | SCRUTINY_WEB: "true" 15 | SCRUTINY_COLLECTOR: "true" 16 | 17 | 18 | # tags spécifiques à ajouter à la construction du docker 19 | specific_docker_info: 20 | capabilities: 21 | - SYS_RAWIO 22 | - SYS_ADMIN 23 | privileged: true 24 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/sensorr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sensorr' 3 | intport: '5070' 4 | image: 'thcolin/sensorr' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "/home/{{ lookup('env','USER') }}/watch:/app/{{ pgrole }}/blackhole" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/shaarli.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'shaarli' 3 | intport: '80' 4 | image: 'shaarli/shaarli:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/cache:/var/www/shaarli/cache:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/var/www/shaarli/data:rw" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/sickchill.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sickchill' 3 | intport: '8081' 4 | image: 'lscr.io/linuxserver/sickchill' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/download:/download" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/sickgear.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sickgear' 3 | intport: '8081' 4 | image: 'lscr.io/linuxserver/sickgear:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/sismicsreader.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sismicsreader' 3 | intport: '8080' 4 | image: 'sismics/reader:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/data" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | 11 | posttasks: 12 | - "hsqldb" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/sonarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sonarr' 3 | intport: '8989' 4 | image: 'lscr.io/linuxserver/sonarr:develop' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | #DOCKER_MODS: 'ghcr.io/gilbn/theme.park:sonarr' 12 | #TP_DOMAIN: 'theme-park.dev' 13 | #TP_THEME: 'plex' 14 | #Remplacer 'plex' par le theme que vous souhaitez avoir (https://docs.theme-park.dev/theme-options/) 15 | 16 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 17 | # et remplacer CHANGEME par votre API sonarr 18 | #extra_labels: 19 | # traefik.http.routers.sonarr-rtr-bypass.entrypoints: 'http,https' 20 | # traefik.http.routers.sonarr-rtr-bypass.rule: 'Headers(`X-Api-Key`, `CHANGEME`)' 21 | # traefik.http.routers.sonarr-rtr-bypass.priority: '100' 22 | # traefik.http.routers.sonarr-rtr-bypass.tls: 'true' 23 | # traefik.http.routers.sonarr-rtr-bypass.middlewares: 'chain-no-auth@file' 24 | # traefik.http.routers.sonarr-rtr-bypass.service: 'sonarr-svc' 25 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/sonarr4k.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'sonarr4k' 3 | intport: '8989' 4 | image: 'lscr.io/linuxserver/sonarr:develop' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | #DOCKER_MODS: 'ghcr.io/gilbn/theme.park:sonarr' 12 | #TP_DOMAIN: 'theme-park.dev' 13 | #TP_ADDON: 'sonarr-4k-logo' 14 | #TP_THEME: 'plex' 15 | #Remplacer 'plex' par le theme que vous souhaitez avoir (https://docs.theme-park.dev/theme-options/) 16 | 17 | # Pour contourner l'authentification pour des outils de style nzb360, décommentez le pavé ci dessous 18 | # et remplacer API par votre API sonarr 19 | #extra_labels: 20 | # traefik.http.routers.sonarr4k-rtr-bypass.entrypoints: 'http,https' 21 | # traefik.http.routers.sonarr4k-rtr-bypass.rule: 'Headers(`X-Api-Key`, `ajouter_`)' 22 | # traefik.http.routers.sonarr4k-rtr-bypass.priority: '100' 23 | # traefik.http.routers.sonarr4k-rtr-bypass.tls: 'true' 24 | # traefik.http.routers.sonarr4k-rtr-bypass.middlewares: 'chain-no-auth@file' 25 | # traefik.http.routers.sonarr4k-rtr-bypass.service: 'sonarr4k-svc' 26 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/speedtest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ### DEPRECATED ### 3 | pgrole: 'speedtest' 4 | intport: '80' 5 | image: 'henrywhitaker3/speedtest-tracker' 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | OOKLA_EULA_GDPR: "true" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/speedtesttracker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'speedtesttracker' 3 | intport: '80' 4 | image: 'lscr.io/linuxserver/speedtest-tracker:0.20.6' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 8 | 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | DB_CONNECTION: 'sqlite' 13 | TZ: 'Europe/Paris' 14 | APP_KEY: "{{ appkey.speedtesttracker }}" 15 | SPEEDTEST_SCHEDULE: "36 * * * *" 16 | APP_TIMEZONE: 'Europe/Paris' 17 | PUBLIC_DASHBOARD: 'true' 18 | 19 | pretasks: 20 | - appkey 21 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/statping.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'statping' 3 | intport: '8080' 4 | image: 'statping/statping' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/app:/app" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | DB_CONN: "sqlite" -------------------------------------------------------------------------------- /includes/dockerapps/vars/stirlingpdf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'stirlingpdf' 3 | intport: '8080' 4 | image: 'stirlingtools/stirling-pdf:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/configs:/configs" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/trainingdata:/usr/share/tessdata" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | DOCKER_ENABLE_SECURITY: "false" 11 | INSTALL_BOOK_AND_ADVANCED_HTML_OPS: "false" 12 | LANGS: "fr_FR" -------------------------------------------------------------------------------- /includes/dockerapps/vars/streamfusion.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'streamfusion' 3 | intport: '8080' 4 | image: 'ghcr.io/limedrive/stream-fusion:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/config" 7 | pg_env: 8 | PUID: "{{ lookup('env','MYUID') }}" 9 | PGID: "{{ lookup('env','MYGID') }}" 10 | SECRET_API_KEY: "{{ SECRET_API_KEY }}" 11 | TMDB_API_KEY: "{{ tmdb.apikey }}" 12 | REDIS_HOST: "stremio-redis" 13 | PG_HOST: "stremio-postgres" 14 | PG_BASE: "streamfusion" 15 | PG_USER: "stremio" 16 | PG_PASS: "stremio" 17 | USE_HTTPS: "true" 18 | RD_TOKEN: "{{ RD_TOKEN }}" 19 | AD_TOKEN: "{{ AD_TOKEN }}" 20 | YGG_PASSKEY: "{{ YGG_PASSKEY }}" 21 | SHAREWOOD_PASSKEY: "{{ SHAREWOOD_PASSKEY }}" 22 | PROXY_URL: "http://warp:1080" 23 | TZ: "Europe/Paris" 24 | pretasks: 25 | - tmdb -------------------------------------------------------------------------------- /includes/dockerapps/vars/stremiomanager.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/redd-ravenn/stremio-addon-manager 2 | --- 3 | pgrole: 'stremiomanager' 4 | intport: '80' 5 | image: 'ghcr.io/limedrive/stremio-addon-manager:latest' 6 | pg_env: 7 | PUID: "{{ lookup('env','MYUID') }}" 8 | PGID: "{{ lookup('env','MYGID') }}" 9 | TZ: 'Europe/Paris' 10 | pg_volumes: 11 | - '/etc/localtime:/etc/localtime:ro' 12 | 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/stremiosaga.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/redd-ravenn/stremio-saga-addon 2 | --- 3 | pgrole: 'stremiosaga' 4 | intport: '7000' 5 | image: 'reddravenn/stremio-saga-addon' 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db:/usr/src/app/db" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/log:/usr/src/app/log" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | PORT: "7000" 13 | RATE_LIMIT_ENABLED: "true" 14 | TMDB_API_KEY: "{{ tmdb_api_key.user_input }}" 15 | NODE_ENV: "production" 16 | LOG_ENABLED: "true" 17 | TZ: 'Europe/Paris' 18 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/stremiotmdbdice.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/redd-ravenn/stremio-tmdb-dice 2 | --- 3 | pgrole: 'stremiotmdbdice' 4 | intport: '7000' 5 | image: 'reddravenn/stremio-tmdb-dice:latest' 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/db:/usr/src/app/db" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/log:/usr/src/app/log" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | BASE_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 13 | PORT: "7000" 14 | CATALOG_CONTENT_CACHE_DURATION: "3d" 15 | RPDB_POSTER_CACHE_DURATION: "3d" 16 | NODE_ENV: "production" 17 | LOG_INTERVAL_DELETION: "3d" 18 | TZ: 'Europe/Paris' -------------------------------------------------------------------------------- /includes/dockerapps/vars/subsonic.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'subsonic' 3 | intport: '8080' 4 | image: 'mbirth/subsonic' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/state:/data" 7 | - "{{ lookup('env','HOME') }}}/Medias/Musiques:/music:ro" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/syncthing.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'syncthing' 3 | intport: '8384' 4 | image: 'lscr.io/linuxserver/syncthing' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{lookup('env','USER')}}/{{pgrole}}/config:/config" 8 | - "{{ settings.storage }}/docker/{{lookup('env','USER')}}/{{pgrole}}/sync:/sync" 9 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 10 | - '/etc/localtime:/etc/localtime:ro' 11 | 12 | pg_env: 13 | PUID: "{{ lookup('env','MYUID') }}" 14 | PGID: "{{ lookup('env','MYGID') }}" 15 | TZ: 'Europe/Paris' 16 | 17 | # tags spécifiques à ajouter à la construction du docker 18 | specific_docker_info: 19 | ports: 20 | - '8384:8384' 21 | - '22000:22000' 22 | - '21027:21027' 23 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/tautulli.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'tautulli' 3 | intport: '8181' 4 | image: 'lscr.io/linuxserver/tautulli' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/plex/database/Library/Application Support/Plex Media Server/Logs:/logs" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/scripts:/scripts:rw" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/thelounge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Création de l'utilisateur 3 | # docker exec --user node -it thelounge thelounge add 4 | pgrole: 'thelounge' 5 | intport: '9000' 6 | image: 'ghcr.io/thelounge/thelounge:latest' 7 | pg_volumes: 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/thelounge://var/opt/thelounge:rw" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/transmission.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'transmission' 3 | intport: '9091' 4 | image: 'ghcr.io/linuxserver/transmission' 5 | pg_volumes: 6 | - "{{ lookup('env','HOME') }}/local/{{pgrole}}/downloads:/downloads" 7 | - "{{ lookup('env','HOME') }}/local/{{pgrole}}/watch:/watch" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 9 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 10 | 11 | pg_env: 12 | PUID: '{{user.userid}}' 13 | PGID: '{{user.groupid}}' 14 | TZ: 'Europe/Paris' 15 | # interface webui 16 | TRANSMISSION_WEB_HOME : /transmission-web-control/ 17 | #TRANSMISSION_WEB_HOME : /flood-for-transmission/ 18 | #TRANSMISSION_WEB_HOME : /combustion-release/ 19 | #TRANSMISSION_WEB_HOME : /kettu/ 20 | # tags spécifiques à ajouter à la construction du docker 21 | specific_docker_info: 22 | ports: 23 | - '51413:51413' 24 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/transmissionvpn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'transmissionvpn' 3 | intport: '9091' 4 | image: 'haugene/transmission-openvpn:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{lookup('env','USER')}}/transmission/data:/data" 7 | - "{{ settings.storage }}/docker/{{lookup('env','USER')}}/transmission/config:/config" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | - "/home/{{lookup('env','USER')}}:/home/{{lookup('env','USER')}}" 10 | pg_env: 11 | PUID: "{{lookup('env','MYUID')}}" 12 | PGID: "{{lookup('env','MYGID')}}" 13 | CREATE_TUN_DEVICE: 'true' 14 | OPENVPN_PROVIDER: '{{provider}}' 15 | OPENVPN_USERNAME: '{{username}}' 16 | OPENVPN_PASSWORD: '{{password}}' 17 | OPENVPN_CONFIG: '{{config}}' 18 | LOCAL_NETWORK: '{{mynetwork}}' 19 | OPENVPN_OPTS: '--inactive 3600 --ping 10 --ping-exit 60' 20 | TRANSMISSION_DOWNLOAD_DIR: "/home/{{lookup('env','USER')}}/transmission" 21 | TZ: 'Europe/Paris' 22 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/ttrss.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'ttrss' 3 | intport: '80' 4 | image: 'wangqiru/ttrss' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | pg_env: 8 | DB_HOST: "db-{{ pgrole }}" 9 | DB_PORT: "5432" 10 | DB_NAME: "{{ pgrole }}" 11 | DB_USER: "{{ pgrole }}" 12 | DB_PASS: "{{ pgrole }}" 13 | SELF_URL_PATH: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 14 | 15 | posttasks: 16 | - "postgresql" 17 | - "default_login_and_password" 18 | 19 | dlogin: "admin" 20 | dpasswd: "password" 21 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/ubooquity.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'ubooquity' 3 | intport: '2203' 4 | image: 'ghcr.io/linuxserver/ubooquity' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{lookup('env','USER')}}/{{pgrole}}:/config" 7 | - "/home/{{lookup('env','USER')}}:/home/{{lookup('env','USER')}}" 8 | - "/home/{{lookup('env','USER')}}:/media" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" 13 | TZ: 'Europe/Paris' 14 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/vaultwarden.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'vaultwarden' 3 | intport: '80' 4 | image: 'vaultwarden/server:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/data:/data:rw" 7 | - '/etc/localtime:/etc/localtime:ro' 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/vikunja.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'vikunja' 3 | intport: '3456' 4 | image: 'vikunja/vikunja' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/app/vikunja/files" 8 | 9 | pg_env: 10 | VIKUNJA_SERVICE_PUBLICURL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 11 | VIKUNJA_DATABASE_HOST: "db-{{ pgrole }}" 12 | VIKUNJA_DATABASE_PASSWORD: "{{ pgrole }}" 13 | VIKUNJA_DATABASE_TYPE: "postgres" 14 | VIKUNJA_DATABASE_USER: "{{ pgrole }}" 15 | VIKUNJA_DATABASE_DATABASE: "{{ pgrole }}" 16 | VIKUNJA_SERVICE_JWTSECRET: "{{ vikunja.jwtsecret }}" 17 | 18 | specific_docker_info: 19 | user: "{{user.userid}}:{{user.groupid}}" 20 | 21 | pretasks: 22 | - appkey 23 | - postgresql15 24 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/vnstat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'vnstat' 3 | intport: '8685' 4 | image: 'vergoh/vnstat' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/etc/ntopng" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/var/lib/ntopng" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | - '/etc/timezone:/etc/timezone:to' 10 | pg_env: 11 | HTTP_PORT: "8685" 12 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wallos.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wallos' 3 | intport: '80' 4 | image: 'bellamy/wallos:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/db:/var/www/html/db" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/logos:/var/www/html/images/uploads/logos" 8 | pg_env: 9 | PUID: "{{ lookup('env','MYUID') }}" 10 | PGID: "{{ lookup('env','MYGID') }}" 11 | TZ: "Europe/Paris" -------------------------------------------------------------------------------- /includes/dockerapps/vars/webdav.yml: -------------------------------------------------------------------------------- 1 | --- 2 | #basé sur bytemark/webdav avec PUID fonctionnel 3 | #https://hub.docker.com/r/bytemark/webdav 4 | pgrole: 'webdav' 5 | intport: '80' 6 | image: 'vladislavdp/webdav_vp' 7 | pg_volumes: 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/var/lib/dav" 9 | pg_env: 10 | #aucune authentification, on laisse le script la gerer par traefik 11 | ANONYMOUS_METHODS: "ALL" 12 | UID: "{{ lookup('env','MYUID') }}" 13 | GID: "{{ lookup('env','MYUID') }}" 14 | 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/webtop.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'webtop' 3 | intport: '3000' 4 | image: 'lscr.io/linuxserver/webtop:ubuntu-icewm' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "/etc/localtime:/etc/localtime:ro" 8 | - "/var/run/docker.sock:/var/run/docker.sock" 9 | extra_labels: 10 | com.centurylinklabs.watchtower.enable: "false" 11 | pg_env: 12 | PUID: "{{ lookup('env','MYUID') }}" 13 | PGID: "{{ lookup('env','MYGID') }}" 14 | TZ: "Europe/Paris" 15 | SUBFOLDER: "/" 16 | KEYBOARD: "fr-fr-azerty" 17 | 18 | specific_docker_info: 19 | privileged: yes 20 | security_opts: "seccomp:unconfined" 21 | shm_size: '1G' 22 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wetty.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wetty' 3 | intport: '3000' 4 | image: 'svenihoney/wetty:latest' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | pg_env: 8 | VIRTUAL_HOST: 'wetty.{{user.domain}}' 9 | VIRTUAL_PORT: '3000' 10 | REMOTE_SSH_SERVER: '{{network.ipv4}}' 11 | REMOTE_SSH_PORT: "{{ ansible_env['SSH_CLIENT'].split() | last }}" 12 | REMOTE_SSH_USER: '' -------------------------------------------------------------------------------- /includes/dockerapps/vars/wgeasy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wgeasy' 3 | intport: '51821' 4 | image: 'ghcr.io/wg-easy/wg-easy' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/etc/wireguard" 7 | pg_env: 8 | TZ: 'Europe/Paris' 9 | WG_HOST: "{{ network.ipv4 }}" 10 | 11 | # tags spécifiques à ajouter à la construction du docker 12 | specific_docker_info: 13 | capabilities: 14 | - NET_ADMIN 15 | - SYS_MODULE 16 | sysctls: 17 | net.ipv4.ip_forward: "1" 18 | net.ipv4.conf.all.src_valid_mark: "1" 19 | ports: 20 | - '51820:51820/udp' 21 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/whisparr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'whisparr' 3 | intport: '6969' 4 | image: 'cr.hotio.dev/hotio/whisparr:nightly' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config:rw" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wikijs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wikijs' 3 | intport: '3000' 4 | image: 'ghcr.io/linuxserver/wikijs' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config:/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | - '/etc/localtime:/etc/localtime:ro' 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/wireguard.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wireguard' 3 | intport: '7878' 4 | image: 'ghcr.io/linuxserver/wireguard' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}/config:/config" 7 | - "/lib/modules:/lib/modules" 8 | pg_env: 9 | PUID: '{{user.userid}}' 10 | PGID: '{{user.groupid}}' 11 | TZ: 'Europe/Paris' 12 | SERVERPORT: '51820' 13 | PEERS: '1' 14 | PEERDNS: 'auto' 15 | INTERNAL_SUBNET: '10.13.13.0' 16 | ALLOWEDIPS: '0.0.0.0/0' 17 | SERVERURL: 'auto' 18 | # tags spécifiques à ajouter à la construction du docker 19 | specific_docker_info: 20 | ports: 21 | - '51820:51820/udp' 22 | sysctls: 23 | net.ipv4.conf.all.src_valid_mark: 1 24 | privileged: yes 25 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wireguardui.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wireguardui' 3 | intport: '5000' 4 | image: 'ngoduykhanh/wireguard-ui:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/wireguard/config:/config" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/db:/app/db" 8 | pg_env: 9 | 10 | TZ: 'Europe/Paris' 11 | WGUI_LOG_LEVEL: "DEBUG" 12 | 13 | # tags spécifiques à ajouter à la construction du docker 14 | specific_docker_info: 15 | capabilities: 16 | - NET_ADMIN 17 | 18 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wizarr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wizarr' 3 | intport: '5690' 4 | image: 'ghcr.io/wizarrrr/wizarr' 5 | 6 | pg_volumes: 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/data:/data/database" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | 10 | pg_env: 11 | APP_URL: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 12 | DISABLE_BUILTIN_AUTH: "true" 13 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/wordpress.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'wordpress' 3 | intport: '80' 4 | image: 'wordpress' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}:/var/www/html" 7 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 8 | - '/etc/localtime:/etc/localtime:ro' 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | WORDPRESS_DB_HOST: "db-{{ pgrole }}" 13 | WORDPRESS_DB_USER: "{{ pgrole }}" 14 | WORDPRESS_DB_PASSWORD: "{{ pgrole }}" 15 | WORDPRESS_DB_NAME: "{{ pgrole }}" 16 | 17 | posttasks: 18 | - "mariadb" 19 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/xteve.yml: -------------------------------------------------------------------------------- 1 | pgrole: 'xteve' 2 | intport: '34400' 3 | image: 'alturismo/xteve_guide2go' 4 | pg_volumes: 5 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/:/root/.xteve:rw" 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/_config:/config:rw" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/_guide2go:/guide2go:rw" 8 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/_tmp:/tmp/xteve:rw" 9 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/TVH:/TVH" 10 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 11 | - '/etc/localtime:/etc/localtime:ro' 12 | pg_env: 13 | PUID: "{{ lookup('env','MYUID') }}" 14 | PGID: "{{ lookup('env','MYGID') }}" 15 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/yacht.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'yacht' 3 | intport: '8000' 4 | image: 'selfhostedpro/yacht' 5 | pg_volumes: 6 | - "/etc/localtime:/etc/localtime:ro" 7 | - "{{ settings.storage }}/docker/{{ pgrole }}/config:/config" 8 | - "/var/run/docker.sock:/var/run/docker.sock" 9 | 10 | pg_env: 11 | PUID: "{{ lookup('env','MYUID') }}" 12 | PGID: "{{ lookup('env','MYGID') }}" -------------------------------------------------------------------------------- /includes/dockerapps/vars/yourls.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'yourls' 3 | intport: '80' 4 | image: 'yourls' 5 | pg_volumes: 6 | - '/etc/localtime:/etc/localtime:ro' 7 | pg_env: 8 | PUID: "{{ lookup('env','MYUID') }}" 9 | PGID: "{{ lookup('env','MYGID') }}" 10 | YOURLS_DB_HOST: "db-{{ pgrole }}" 11 | YOURLS_DB_USER: "{{ pgrole }}" 12 | YOURLS_DB_PASS: "{{ pgrole }}" 13 | YOURLS_USER: "{{ user.name }}" 14 | YOURLS_PASS: "{{ user.pass }}" 15 | YOURLS_SITE: "https://{{ sub[pgrole][pgrole] if sub_enabled else pgrole }}.{{user.domain}}" 16 | -------------------------------------------------------------------------------- /includes/dockerapps/vars/zilean.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'zilean' 3 | intport: '8181' 4 | image: 'ipromknight/zilean:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{pgrole}}:/app/data" 7 | pg_env: 8 | Zilean__Database__ConnectionString: "Host=stremio-postgres;Port=5432;Database=zilean;Username=stremio;Password=stremio" 9 | Zilean__Dmm__ImportBatched: "true" 10 | Zilean__Imdb__EnableImportMatching: "false" 11 | Zilean__Imdb__EnableEndpoint: "false" 12 | Zilean__Dmm__MaxFilteredResults: "200" 13 | Zilean__Dmm__MinimumScoreMatch: "0.85" 14 | TZ: "Europe/Paris" -------------------------------------------------------------------------------- /includes/dockerapps/vars/zurg.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pgrole: 'zurg' 3 | intport: '9999' 4 | image: 'ghcr.io/debridmediamanager/zurg-testing:latest' 5 | pg_volumes: 6 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/config.yml:/app/config.yml" 7 | - "{{ settings.storage }}/docker/{{ lookup('env','USER') }}/{{ pgrole }}/zurgdata:/app/data" 8 | - "{{ lookup('env','HOME') }}:{{ lookup('env','HOME') }}" 9 | pg_env: 10 | PUID: "{{ lookup('env','MYUID') }}" 11 | PGID: "{{ lookup('env','MYGID') }}" 12 | 13 | specific_docker_info: 14 | ports: 15 | - '9999:9999' 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /logs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /menu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projetssd/ssdv2/d4a2aa69cb1251bc5a933370460755e57a5f1f2f/menu -------------------------------------------------------------------------------- /patches/20230730_n8nio: -------------------------------------------------------------------------------- 1 | if [ "$( docker container inspect -f '{{.State.Running}}' n8nio )" == "true" ]; then 2 | docker run --rm -it -v ${SETTINGS_STORAGE}/docker/${USER}/n8nio:/home/node/.n8n --entrypoint chown n8nio/base:16 -R node:node /home/node/.n8n 3 | fi 4 | -------------------------------------------------------------------------------- /patches/20230921_python3-lxml: -------------------------------------------------------------------------------- 1 | sudo apt update && sudo apt install python3-lxml -y -------------------------------------------------------------------------------- /patches/20231210_getarch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "${HOME}/.config/ssd/env" 3 | source "${SETTINGS_SOURCE}/profile.sh" 4 | get_architecture -------------------------------------------------------------------------------- /patches/20231222_pip: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "${HOME}/.config/ssd/env" 3 | source "${SETTINGS_SOURCE}/profile.sh" 4 | 5 | pip install inquirer 6 | pip install jsons 7 | pip install colorama 8 | 9 | -------------------------------------------------------------------------------- /patches/20240530_python3-requests2.31: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "${HOME}/.config/ssd/env" 3 | source "${SETTINGS_SOURCE}/profile.sh" 4 | 5 | pip uninstall -y requests 6 | pip install requests==2.31 -------------------------------------------------------------------------------- /patches/20240826_jq: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Vérifie si jq est installé 4 | if ! dpkg -l | grep -q "^ii jq"; then 5 | # Si jq n'est pas installé, on l'installe 6 | sudo apt update 7 | sudo apt install jq -y 8 | fi 9 | -------------------------------------------------------------------------------- /patches/20240924_fail2ban: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source "${HOME}/.config/ssd/env" 3 | source "${SETTINGS_SOURCE}/profile.sh" 4 | 5 | # Vérification du statut du service fail2ban 6 | SERVICE_STATUS=$(sudo systemctl is-active fail2ban) 7 | 8 | # Si le service est inactif ou échoué, on exécute la fonction install_fail2ban 9 | if [[ "$SERVICE_STATUS" != "active" ]]; then 10 | echo "Le service fail2ban n'est pas en cours d'exécution. Exécution de la fonction install_fail2ban." 11 | install_fail2ban 12 | else 13 | echo "Le service fail2ban est en cours d'exécution." 14 | fi 15 | -------------------------------------------------------------------------------- /prerequis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ############################################################### 3 | 4 | echo "Ce script est inutile, tout se passe dans seedbox.sh" -------------------------------------------------------------------------------- /profile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | # Si le fichier n'existe pas, on ne fait rien 5 | if [ -f "${HOME}/.config/ssd/env" ]; then 6 | source "${HOME}/.config/ssd/env" 7 | export PATH="$HOME/.local/bin:$PATH" 8 | # On rentre dans le venv 9 | source ${SETTINGS_SOURCE}/venv/bin/activate 10 | # On charge les variables 11 | source ${SETTINGS_SOURCE}/includes/variables.sh 12 | # On charge les fonctions 13 | source ${SETTINGS_SOURCE}/includes/functions.sh 14 | # On charge les fonctions qui sont lancées par le menu 15 | source ${SETTINGS_SOURCE}/includes/menus.sh 16 | 17 | PYTHONPATH=${SETTINGS_SOURCE}/venv/lib/$(ls ${SETTINGS_SOURCE}/venv/lib)/site-packages 18 | export PYTHONPATH 19 | # le fonction nous a probablement fait sortir du venv, on le recharge 20 | source ${SETTINGS_SOURCE}/venv/bin/activate 21 | fi 22 | 23 | 24 | -------------------------------------------------------------------------------- /tmp/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore --------------------------------------------------------------------------------