diff --git a/docker-compose.yml b/docker-compose.yml index 6f9dbdc2a..d7c4ec3b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: nginx: - build: ./nginx + image: nginx:latest ports: - 1333:80 depends_on: @@ -10,6 +10,7 @@ services: networks: - main volumes: + - ./nginx:/etc/nginx/conf.d - static_volume:/app/static - media_volume:/app/images db: diff --git a/nginx/Dockerfile b/nginx/Dockerfile deleted file mode 100644 index 66074cf66..000000000 --- a/nginx/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM nginx:1.17.4-alpine - -RUN rm /etc/nginx/conf.d/default.conf -COPY nginx.conf /etc/nginx/conf.d diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 000000000..51165243b --- /dev/null +++ b/nginx/default.conf @@ -0,0 +1,65 @@ +upstream web { + server web:8000; +} + +server { + listen 80; + + location / { + proxy_pass http://web; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_redirect off; + } + + location /images/ { + alias /app/images/; + } + + location /static/ { + alias /app/static/; + } +} + +# PROD version +# +#server { +# listen [::]:80; +# listen 80; +# +# server_name your-domain.com www.your-domain.com; +# +# location ~ /.well-known/acme-challenge { +# allow all; +# root /var/www/certbot; +# } +# +# # redirect http to https www +# return 301 https://www.your-domain.com$request_uri; +#} +# +#server { +# listen [::]:443 ssl http2; +# listen 443 ssl http2; +# +# server_name your-domain.com; +# +# # SSL code +# ssl_certificate /etc/nginx/ssl/live/your-domain.com/fullchain.pem; +# ssl_certificate_key /etc/nginx/ssl/live/your-domain.com/privkey.pem; +# +# location / { +# proxy_pass http://web; +# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +# proxy_set_header Host $host; +# proxy_redirect off; +# } +# +# location /images/ { +# alias /app/images/; +# } +# +# location /static/ { +# alias /app/static/; +# } +#} diff --git a/nginx/nginx.conf b/nginx/nginx.conf deleted file mode 100644 index d38982870..000000000 --- a/nginx/nginx.conf +++ /dev/null @@ -1,22 +0,0 @@ -upstream web { - server web:8000; -} - -server { - listen 80; - - location / { - proxy_pass http://web; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_redirect off; - } - - location /images/ { - alias /app/images/; - } - - location /static/ { - alias /app/static/; - } -} diff --git a/prod-docker-compose.yml b/prod-docker-compose.yml new file mode 100644 index 000000000..0ace0df0a --- /dev/null +++ b/prod-docker-compose.yml @@ -0,0 +1,74 @@ +version: '3' + +services: + nginx: + image: nginx:latest + ports: + - 80:80 + - 443:443 + depends_on: + - web + networks: + - main + volumes: + - ./nginx:/etc/nginx/conf.d + - ./certbot/conf:/etc/nginx/ssl + - ./certbot/data:/var/www/certbot + - static_volume:/app/static + - media_volume:/app/images + certbot: + image: certbot/certbot:latest + command: certonly --webroot --webroot-path=/var/www/certbot --email your-email@domain.com --agree-tos --no-eff-email -d your-domain.com -d www.your-domain.com + volumes: + - ./certbot/conf:/etc/letsencrypt + - ./certbot/logs:/var/log/letsencrypt + - ./certbot/data:/var/www/certbot + db: + image: postgres + env_file: .env + volumes: + - pgdata:/var/lib/postgresql/data + networks: + - main + web: + build: . + command: python manage.py runserver 0.0.0.0:8000 + volumes: + - .:/app + - static_volume:/app/static + - media_volume:/app/images + depends_on: + - db + - celery_worker + networks: + - main + ports: + - 8000:8000 + redis: + image: redis + env_file: .env + ports: + - "6379:6379" + networks: + - main + restart: on-failure + celery_worker: + env_file: .env + build: . + networks: + - main + command: celery -A celerywyrm worker -l info + volumes: + - .:/app + - static_volume:/app/static + - media_volume:/app/images + depends_on: + - db + - redis + restart: on-failure +volumes: + pgdata: + static_volume: + media_volume: +networks: + main: