SYS265‐DockerLargeProject2B‐Yeetfile - ConnorEast/Tech-Journal GitHub Wiki

<< Previous Page

Commands used

Command Reason
mkdir ~/docker create a directory to keep Docker files
touch docker-compose.yml Create the base docker file
touch nginx.conf Create a file that the docker file will call on to run nginx
touch .exe create an environmental vairables document so that data is not hard coded into the front facing website
docker-compose down && docker-compose up -d Turns off any currnetly running docker file before restarting the the file in the directory you are currently in
netstat -tulpn | grep 8090


Handwritten ".yml"&"nginx.conf"&".env" documents

DOCKER-COMPOSE.yml SETUP

version: "3.3"

services:

api:

image: ghcr.io/benbusby/yeetfile:latest

container_name: yeetfile

restart: unless-stopped

ports:

- 8090:8090

expose:

- 8090

depends_on:

db:

condition: service_healthy

environment:

- YEETFILE_DEBUG=${YEETFILE_DEBUG}

- YEETFILE_STORAGE=${YEETFILE_STORAGE}

- YEETFILE_DEFAULT_USER_STORAGE=${YEETFILE_DEFAULT_USER_STORAGE}

- YEETFILE_DEFAULT_USER_SEND=${YEETFILE_DEFAULT_USER_SEND}

- YEETFILE_HOST=${YEETFILE_HOST}

- YEETFILE_PORT=${YEETFILE_PORT}

- YEETFILE_DB_USER=${YEETFILE_DB_USER}

- YEETFILE_DB_PASS=${YEETFILE_DB_PASS}

- YEETFILE_DB_NAME=${YEETFILE_DB_NAME}

- YEETFILE_DB_HOST=${YEETFILE_DB_HOST}

volumes:

- ./volumes/yeetfile/uploads:/app/uploads

db:

image: postgres:16-alpine

container_name: yeetfile-db

restart: unless-stopped

volumes:

- ./volumes/yeetfile/data:/var/lib/postgresql/data

environment:

- POSTGRES_HOST_AUTH_METHOD=${POSTGRES_HOST_AUTH_METHOD}

- POSTGRES_USER=${YEETFILE_DB_USER}

- POSTGRES_PASSWORD=${YEETFILE_DB_PASS}

- POSTGRES_DB=${YEETFILE_DB_NAME}

expose:

- "5432"

healthcheck:

test: [ "CMD-SHELL", "pg_isready -U $$POSTGRES_USER"]

interval: 3s

retries: 5

timeout: 5s

nginx:

image: nginx:latest

container_name: yeetfile-nginx

restart: unless-stopped

ports:

- "80:80"

depends_on:

- api

volumes:

NGINX SETUP

events{}

http { server{ listen 80;

	location /{
		proxy_pass http://api:8090;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	
	
	}


}

}

.ENV file Setup

YEETFILE_DEBUG=0 YEETFILE_STORAGE=local YEETFILE_DEFAULT_USER_STORAGE=-1 YEETFILE_DEFAULT_USER_SEND=-1 YEETFILE_HOST=0.0.0.0 YEETFILE_PORT=8090 YEETFILE_DB_USER=postgres YEETFILE_DB_PASS=postgres YEETFILE_DB_NAME=yeetfile YEETFILE_DB_HOST=db POSTGRES_HOST_AUTH_METHOD=md5

Deliverable 1: Working yeetfile page

Deliverable 2: Working text sending

⚠️ **GitHub.com Fallback** ⚠️