├── .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 | [](https://discordapp.com/invite/ZhWvKVmTuh)
7 |
8 | ## JetBrains
9 | merci à [
JetBrains](http://www.jetbrains.com/) pour les licences open source qui nous permettent de travailler sur ce projet.
10 |
11 | * [
PhpStorm](http://www.jetbrains.com/phpstorm/)
12 | * [
WebStorm](http://www.jetbrains.com/webstorm/)
13 | * [
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
--------------------------------------------------------------------------------