diff --git a/.env.example b/.env.example index e99ea48..f4dcb3d 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ APP_PORT=8080 -APP_DEBUG=true +APP_DEBUG=false MAXLEN=5120 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e8965af --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM node:19 + +COPY . /opt/code + +WORKDIR /opt/code + +RUN rm -rf node_modules package_lock.json && \ + npm install + +CMD [ "/bin/sh", "-c", "/opt/code/run_instance.sh" ] \ No newline at end of file diff --git a/README.md b/README.md index baa4a06..5109de6 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,16 @@ blek! Bin is a minimalist, privacy-respecting alternative to pastebin. # Running an instance +### Using npm ```bash cp .env.example .env # edit your .env npm run dev/prod +``` + +### Using docker (recomended) +```bash +cp .env.example .env +# edit your .env +docker-compose up -d ``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..822c058 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3' + +services: + server: + build: + context: '.' + dockerfile: Dockerfile + ports: + - '${APP_PORT:-8080}:${APP_PORT:-8080}' + volumes: + - './usercontent:/opt/code/usercontent' \ No newline at end of file diff --git a/run_instance.sh b/run_instance.sh new file mode 100755 index 0000000..9651007 --- /dev/null +++ b/run_instance.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if ! [ -f .env ]; then + echo -e '\033[31m.env not found.' + exit -1 +fi + +. .env +if [ "$APP_DEBUG" == "true" ]; then + npm run dev +else + npm run prod +fi \ No newline at end of file