mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-20 07:05:05 -04:00
add docker-compose-dev.yml and needed conf files
This commit is contained in:
parent
04d65da779
commit
9f02f7b3ca
7 changed files with 142 additions and 0 deletions
33
docker-compose-dev.yml
Normal file
33
docker-compose-dev.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
pairdrop:
|
||||||
|
build: .
|
||||||
|
container_name: pairdrop
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- PUID=1000 # UID to run the application as
|
||||||
|
- PGID=1000 # GID to run the application as
|
||||||
|
- WS_FALLBACK=false # Set to true to enable websocket fallback if the peer to peer WebRTC connection is not available to the client.
|
||||||
|
- RATE_LIMIT=false # Set to true to limit clients to 1000 requests per 5 min.
|
||||||
|
- RTC_CONFIG=false # Set to the path of a file that specifies the STUN/TURN servers.
|
||||||
|
- DEBUG_MODE=false # Set to true to debug container and peer connections.
|
||||||
|
- TZ=Etc/UTC # Time Zone
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3000:3000" # Web UI. Change the port number before the last colon e.g. `127.0.0.1:9000:3000`
|
||||||
|
nginx:
|
||||||
|
build:
|
||||||
|
context: ./docker/
|
||||||
|
dockerfile: nginx-with-openssl.Dockerfile
|
||||||
|
image: "nginx-with-openssl"
|
||||||
|
volumes:
|
||||||
|
- ./public:/usr/share/nginx/html
|
||||||
|
- ./docker/certs:/etc/ssl/certs
|
||||||
|
- ./docker/openssl:/mnt/openssl
|
||||||
|
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
- "8443:443"
|
||||||
|
env_file: ./docker/fqdn.env
|
||||||
|
entrypoint: /mnt/openssl/create.sh
|
||||||
|
command: ["nginx", "-g", "daemon off;"]
|
||||||
|
restart: unless-stopped
|
1
docker/fqdn.env
Normal file
1
docker/fqdn.env
Normal file
|
@ -0,0 +1 @@
|
||||||
|
FQDN=localhost
|
3
docker/nginx-with-openssl.Dockerfile
Normal file
3
docker/nginx-with-openssl.Dockerfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
FROM nginx:alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache openssl
|
41
docker/nginx/default.conf
Normal file
41
docker/nginx/default.conf
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
expires epoch;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_connect_timeout 300;
|
||||||
|
proxy_pass http://node:3000;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /ca.crt {
|
||||||
|
alias /etc/ssl/certs/snapdropCA.crt;
|
||||||
|
}
|
||||||
|
|
||||||
|
# To allow POST on static pages
|
||||||
|
error_page 405 =200 $uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl http2;
|
||||||
|
ssl_certificate /etc/ssl/certs/pairdrop-dev.crt;
|
||||||
|
ssl_certificate_key /etc/ssl/certs/pairdrop-dev.key;
|
||||||
|
|
||||||
|
expires epoch;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_connect_timeout 300;
|
||||||
|
proxy_pass http://node:3000;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /ca.crt {
|
||||||
|
alias /etc/ssl/certs/pairdropCA.crt;
|
||||||
|
}
|
||||||
|
# To allow POST on static pages
|
||||||
|
error_page 405 =200 $uri;
|
||||||
|
}
|
||||||
|
|
9
docker/openssl/create.sh
Executable file
9
docker/openssl/create.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cnf_dir='/mnt/openssl/'
|
||||||
|
certs_dir='/etc/ssl/certs/'
|
||||||
|
openssl req -config ${cnf_dir}pairdropCA.cnf -new -x509 -days 1 -keyout ${certs_dir}pairdropCA.key -out ${certs_dir}pairdropCA.crt
|
||||||
|
openssl req -config ${cnf_dir}pairdropCert.cnf -new -out /tmp/pairdrop-dev.csr -keyout ${certs_dir}pairdrop-dev.key
|
||||||
|
openssl x509 -req -in /tmp/pairdrop-dev.csr -CA ${certs_dir}pairdropCA.crt -CAkey ${certs_dir}pairdropCA.key -CAcreateserial -extensions req_ext -extfile ${cnf_dir}pairdropCert.cnf -sha512 -days 1 -out ${certs_dir}pairdrop-dev.crt
|
||||||
|
|
||||||
|
exec "$@"
|
26
docker/openssl/pairdropCA.cnf
Normal file
26
docker/openssl/pairdropCA.cnf
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[ req ]
|
||||||
|
default_bits = 2048
|
||||||
|
default_md = sha256
|
||||||
|
default_days = 1
|
||||||
|
encrypt_key = no
|
||||||
|
distinguished_name = subject
|
||||||
|
x509_extensions = x509_ext
|
||||||
|
string_mask = utf8only
|
||||||
|
prompt = no
|
||||||
|
|
||||||
|
[ subject ]
|
||||||
|
organizationName = PairDrop
|
||||||
|
OU = CA
|
||||||
|
commonName = pairdrop-CA
|
||||||
|
|
||||||
|
[ x509_ext ]
|
||||||
|
subjectKeyIdentifier = hash
|
||||||
|
authorityKeyIdentifier = keyid:always,issuer
|
||||||
|
|
||||||
|
# You only need digitalSignature below. *If* you don't allow
|
||||||
|
# RSA Key transport (i.e., you use ephemeral cipher suites), then
|
||||||
|
# omit keyEncipherment because that's key transport.
|
||||||
|
|
||||||
|
basicConstraints = critical, CA:TRUE, pathlen:0
|
||||||
|
keyUsage = critical, digitalSignature, keyEncipherment, cRLSign, keyCertSign
|
||||||
|
|
29
docker/openssl/pairdropCert.cnf
Normal file
29
docker/openssl/pairdropCert.cnf
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
[ req ]
|
||||||
|
default_bits = 2048
|
||||||
|
default_md = sha256
|
||||||
|
default_days = 1
|
||||||
|
encrypt_key = no
|
||||||
|
distinguished_name = subject
|
||||||
|
req_extensions = req_ext
|
||||||
|
string_mask = utf8only
|
||||||
|
prompt = no
|
||||||
|
|
||||||
|
[ subject ]
|
||||||
|
organizationName = PairDrop
|
||||||
|
OU = Development
|
||||||
|
|
||||||
|
# Use a friendly name here because it's presented to the user. The server's DNS
|
||||||
|
# names are placed in Subject Alternate Names. Plus, DNS names here is deprecated
|
||||||
|
# by both IETF and CA/Browser Forums. If you place a DNS name here, then you
|
||||||
|
# must include the DNS name in the SAN too (otherwise, Chrome and others that
|
||||||
|
# strictly follow the CA/Browser Baseline Requirements will fail).
|
||||||
|
|
||||||
|
commonName = ${ENV::FQDN}
|
||||||
|
|
||||||
|
[ req_ext ]
|
||||||
|
subjectKeyIdentifier = hash
|
||||||
|
basicConstraints = CA:FALSE
|
||||||
|
keyUsage = digitalSignature, keyEncipherment
|
||||||
|
subjectAltName = DNS:${ENV::FQDN}
|
||||||
|
nsComment = "OpenSSL Generated Certificate"
|
||||||
|
extendedKeyUsage = serverAuth
|
Loading…
Add table
Add a link
Reference in a new issue