AdrienPoupa / docker-compose-nas

Simple Docker Compose NAS featuring Sonarr, Radarr, Prowlarr, Jellyfin, qBittorrent, PIA VPN and Traefik with SSL support
1.06k stars 145 forks source link

can not compose docker on Synology NAS and different VPN provider #63

Closed gituser823 closed 8 months ago

gituser823 commented 8 months ago

hello,

sorry, if this is a dumb question, but I have only installed docker containers through the Synology Container Manager so far.

I cloned the github and created a new shared folder on my NAS DS218+.

I read the Synology Quirks and adjusted the settings accordingly like UID and disable SSTP.

Then "cp .env.example .env" and edited the file.

But when running "docker compose up -d" via SSH as root I get: unknown shorthand flag: 'd' in -d

And with "docker compose up" I get docker: 'compose' is not a docker command.

Also can you help me set ProtonVPN as the provider for Qbitorrent?

It can be done with this container: https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/protonvpn.md

Id like to use OpenVPN instead of wireguard, because I read the Wireguard binary may be deleted with a DSM Update.

I read it can be done by creating a docker-compose.override.yml but im not sure how that would need to look like as i have never written a compose file.

Also how do I disable the DNS / Certificate Setup?

If I connect to my Wireguard VPN Server on my Router will I still be able to use Tailscale to connect directly? Or do I need a Certificate for that?

I attached my .env file.

Thanks!

.env.txt

AdrienPoupa commented 8 months ago

Hello,

But when running "docker compose up -d" via SSH as root I get: unknown shorthand flag: 'd' in -d

And with "docker compose up" I get docker: 'compose' is not a docker command.

This is because Synology does not ship Docker compose v2 but v1. Try with docker-compose up -d rather than docker compose up -d (notice the added hyphen).

Also can you help me set ProtonVPN as the provider for Qbitorrent?

As I'm not using it I don't have credentials to test, but a rough base would look something like:


  vpn:
    image: qmcgaw/gluetun
    container_name: vpn
    restart: always
    labels:
      # network mode is not supported: https://github.com/containrrr/watchtower/issues/1286#issuecomment-1214291660
      - com.centurylinklabs.watchtower.enable=false
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=protonvpn
      - OPENVPN_USER=abc
      - OPENVPN_PASSWORD=abc

I read it can be done by creating a docker-compose.override.yml but im not sure how that would need to look like as i have never written a compose file.

This easiest for you then would be to replace the vpn block in docker-compose.yaml by the above.

Id like to use OpenVPN instead of wireguard, because I read the Wireguard binary may be deleted with a DSM Update.

You do as you want, but performance (ie DL speed) is much much better with Wireguard as it strains the CPU way less.

Also how do I disable the DNS / Certificate Setup?

Set the DNS_CHALLENGE to false and set LETS_ENCRYPT_CA_SERVER to the staging server for good measure, this will make Traefik generate a self signed certificate. This means the Jellyfin's Android will not work though.

If I connect to my Wireguard VPN Server on my Router will I still be able to use Tailscale to connect directly? Or do I need a Certificate for that?

If you are already using a Wireguard VPN server I guess you do not need Tailscale at all.

gituser823 commented 8 months ago

Thanks for the reply.

Well you convinced me to use Wireguard.

I did everything according to the Instructions, but it failed, because the folder artifacts was not created, maybe you can add it to your tutorial:

sudo docker run --rm --privileged --env PACKAGE_ARCH=apollolake --env DSM_VER=7.2 -v $(pwd)/artifacts:/result_spk synobuild

docker: Error response from daemon: Bind mount failed: '/volume1/homes/me/wireguard/synology-wireguard/artifacts' does not exists.

I then created the folder, but it still fails for a different reason:

sudo docker run --rm --privileged --env PACKAGE_ARCH=apollolake --env DSM_VER=7.2 -v $(pwd)/artifacts:/result_spk synobuild WireGuard version: 1.0.20220627 WireGuard tools version: 1.0.20210914 libmnl version: 1.0.5

Cloning into 'pkgscripts-ng'... [2024-03-15 16:22:45,269] ERROR: PlatformNotAvailableError [2024-03-15 16:22:45,269] ERROR: [apollolake] is not available platform. [2024-03-15 16:22:45,269] ERROR: pkgscripts-ng/EnvDeploy -p apollolake -v 7.2 failed!

AdrienPoupa commented 8 months ago

It looks like you are trying to compile the project yourself; it should not be necessary. From the readme:

For DSM 7.1, download and install the package corresponding to your NAS CPU architecture from here.

Then follow the four steps here: https://github.com/vegardit/synology-wireguard?tab=readme-ov-file#installation, no need to setup wg-quick configuration