Skip to content

Instantly share code, notes, and snippets.

@optinaspro
Last active July 25, 2026 21:49
Show Gist options
  • Select an option

  • Save optinaspro/ce5a62c05c63300c0ec4c7f37823ba59 to your computer and use it in GitHub Desktop.

Select an option

Save optinaspro/ce5a62c05c63300c0ec4c7f37823ba59 to your computer and use it in GitHub Desktop.
Commandes d'installation OptiNAS

Installer Portainer sur Synology

sudo docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --restart=unless-stopped --name="portainer" -v /var/run/docker.sock:/var/run/docker.sock -v /volume2/docker/portainer-ce:/data portainer/portainer-ce

Installer Sonarr & Radarr + PostgreSQL

Radarr

sudo docker run -d \
  --name radarr \
  --network arr \
  --restart unless-stopped \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -v /volume2/OptiNAS/Containers/Radarr:/config \
  -v /volume2/OptiNAS/NAS:/NAS \
  -v /volume2/OptiNAS/NAS/Downloads:/downloads \
  -p 7878:7878 \
  lscr.io/linuxserver/radarr:develop

Sonarr

sudo docker run -d \
  --name sonarr \
  --network arr \
  --restart unless-stopped \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -v /volume2/OptiNAS/Containers/Sonarr:/config \
  -v /volume2/OptiNAS/NAS:/NAS \
  -v /volume2/OptiNAS/NAS/Downloads:/downloads \
  -p 8989:8989 \
  lscr.io/linuxserver/sonarr:develop

PostgreSQL 14

sudo docker run -d \
  --name postgres14 \
  --network arr \
  --restart unless-stopped \
  -e POSTGRES_USER=optinas \
  -e POSTGRES_PASSWORD='123' \
  -v /volume2/OptiNAS/Containers/Postgres14:/var/lib/postgresql/data \
  -p 5433:5432 \
  postgres:14

Créer les bases de données PostgreSQL

sudo docker exec -it postgres14 psql -U optinas

Puis dans PostgreSQL :

CREATE DATABASE "radarr-main";
CREATE DATABASE "radarr-log";
CREATE DATABASE "sonarr-main";
CREATE DATABASE "sonarr-log";
\q

Modifier le fichier config.xml de Radarr & Sonarr

Ne pas oublier de respecter l’espace / l’indentation au début si nécessaire selon ton fichier.

Configuration Radarr

<PostgresHost>postgres14</PostgresHost>
<PostgresPort>5432</PostgresPort>
<PostgresUser>optinas</PostgresUser>
<PostgresPassword>123</PostgresPassword>
<PostgresMainDb>radarr-main</PostgresMainDb>
<PostgresLogDb>radarr-log</PostgresLogDb>

Configuration Sonarr

<PostgresHost>postgres14</PostgresHost>
<PostgresPort>5432</PostgresPort>
<PostgresUser>optinas</PostgresUser>
<PostgresPassword>123</PostgresPassword>
<PostgresMainDb>sonarr-main</PostgresMainDb>
<PostgresLogDb>sonarr-log</PostgresLogDb>

Installer Prowlarr & Jackett

Prowlarr

sudo docker run -d \
  --name prowlarr \
  --network arr \
  --restart unless-stopped \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -p 9696:9696 \
  -v /volume2/OptiNAS/Containers/Prowlarr:/config \
  lscr.io/linuxserver/prowlarr:latest

Jackett

sudo docker run -d \
  --name jackett \
  --network arr \
  --restart unless-stopped \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -e AUTO_UPDATE=true \
  -p 9117:9117 \
  -v /volume2/OptiNAS/Containers/Jackett:/config \
  -v /volume2/OptiNAS/NAS/Downloads:/downloads \
  lscr.io/linuxserver/jackett:latest

Installer qBittorrent + VPN + VueTorrent

Gluetun

sudo docker run -d \
  --name gluetun \
  --network arr \
  --restart unless-stopped \
  --cap-add=NET_ADMIN \
  --device /dev/net/tun:/dev/net/tun \
  -e VPN_SERVICE_PROVIDER=protonvpn \
  -e VPN_TYPE=openvpn \
  -e OPENVPN_USER='xxxxx' \
  -e OPENVPN_PASSWORD='xxxxx' \
  -e OPENVPN_PROTOCOL=udp \
  -e SERVER_COUNTRIES='France' \
  -e PORT_FORWARD_ONLY=on \
  -e VPN_PORT_FORWARDING=on \
  -e TZ=Europe/Paris \
  -p 8080:8080 \
  -p 6881:6881 \
  -p 6881:6881/udp \
  -v /volume2/OptiNAS/Containers/Gluetun:/gluetun \
  qmcgaw/gluetun

qBittorrent + VueTorrent

sudo docker run -d \
  --name qbittorrent \
  --restart unless-stopped \
  --network=container:gluetun \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -e WEBUI_PORT=8080 \
  -e TORRENTING_PORT=6881 \
  -e DOCKER_MODS=ghcr.io/vuetorrent/vuetorrent-lsio-mod:latest \
  -v /volume2/OptiNAS/Containers/qBittorrent:/config \
  -v /volume2/OptiNAS/NAS:/NAS \
  lscr.io/linuxserver/qbittorrent:latest

POUR CEUX QUI VEULENT qBittorrent SANS VPN

sudo docker run -d \
  --name qbittorrent \
  --network arr \
  --restart unless-stopped \
  -e PUID=1035 \
  -e PGID=100 \
  -e TZ=Europe/Paris \
  -e WEBUI_PORT=8080 \
  -e TORRENTING_PORT=6881 \
  -e DOCKER_MODS=ghcr.io/vuetorrent/vuetorrent-lsio-mod:latest \
  -p 8080:8080 \
  -p 6881:6881 \
  -v /volume2/OptiNAS/Containers/qBittorrent:/config \
  -v /volume2/OptiNAS/NAS:/NAS \
  lscr.io/linuxserver/qbittorrent:latest

Installer Seerr

sudo docker run -d \
  --name seerr \
  --network arr \
  --init \
  -e LOG_LEVEL=debug \
  -e TZ=Europe/Paris \
  -e PORT=5055 \
  -p 5055:5055 \
  -v /volume2/OptiNAS/Containers/Seerr:/app/config \
  --restart unless-stopped \
  ghcr.io/seerr-team/seerr:latest

Tunnel SSH

Seulement pour Plex si vous l’installez autrement que sur Synology

ssh USERNAME@IP -L 8888:localhost:32400

Custom Format de Sonnar & Radarr

French :

{
  "name": "French",
  "includeCustomFormatWhenRenaming": false,
  "specifications": [
    {
      "name": "FRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "french"
      }
    },
    {
      "name": "VF",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vf"
      }
    },
    {
      "name": "VOF",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vof"
      }
    },
    {
      "name": "TRUEFRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "truefrench"
      }
    },
    {
      "name": "VFi",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vfi"
      }
    }
  ]
}

MULTi

{
  "name": "MULTi",
  "includeCustomFormatWhenRenaming": false,
  "specifications": [
    {
      "name": "MULTi",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": true,
      "fields": {
        "value": "MULTi"
      }
    }
  ]
}

VOST

{
  "name": "VOST",
  "includeCustomFormatWhenRenaming": false,
  "specifications": [
    {
      "name": "VOSTFR",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vostfr"
      }
    },
    {
      "name": "SUBFRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "SUBFRENCH"
      }
    },
    {
      "name": "VO",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vo"
      }
    },
    {
      "name": "VOF",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vof"
      }
    },
    {
      "name": "VF",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vf"
      }
    },
    {
      "name": "VFi",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vfi"
      }
    },
    {
      "name": "French",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "french"
      }
    },
    {
      "name": "TRUEFRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "truefrench"
      }
    }
  ]
}

VOST (Animes)

{
  "name": "VOST (Animes)",
  "includeCustomFormatWhenRenaming": false,
  "specifications": [
    {
      "name": "VOSTFR",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vostfr"
      }
    },
    {
      "name": "SUBFRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "SUBFRENCH Tsundere-Raws"
      }
    },
    {
      "name": "VF",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "vf"
      }
    },
    {
      "name": "French",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "french"
      }
    },
    {
      "name": "TRUEFRENCH",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "truefrench"
      }
    }
  ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment