aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-11-15 21:20:29 -0600
committerParker <contact@pkrm.dev>2024-11-15 21:20:29 -0600
commit1b1601e4c449254b114522b3c49ab4b126f89cc8 (patch)
tree60dcc2af04ae6e871a30042fb89401e70af11150
parent4cfc800f8c38eafc54ce35155469d361ee07d8f7 (diff)
Update config and work on shell/docker
-rw-r--r--Dockerfile3
-rw-r--r--config.py7
-rwxr-xr-xdev.sh20
-rw-r--r--linklogger.py4
-rw-r--r--linklogger.sh6
5 files changed, 34 insertions, 6 deletions
diff --git a/Dockerfile b/Dockerfile
index be8870e..16cc8c1 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,6 +12,7 @@ LABEL maintainer="parker <mailto:contact@pkrm.dev>"
WORKDIR /
COPY . .
+RUN chmod +x linklogger.sh
RUN pip install -r requirements.txt
RUN apt-get update && apt-get install -y nginx && \
@@ -22,4 +23,4 @@ COPY --from=build-ui /app/dist /usr/share/nginx/html
# Replace the default site with the LinkLogger config
COPY nginx.conf /etc/nginx/sites-enabled/default
-CMD service nginx start && python -u linklogger.py \ No newline at end of file
+CMD ["./linklogger.sh"] \ No newline at end of file
diff --git a/config.py b/config.py
index 620b301..9b6f23c 100644
--- a/config.py
+++ b/config.py
@@ -1,7 +1,6 @@
import jsonschema
import os
import yaml
-import sys
import logging
from colorlog import ColoredFormatter
@@ -66,7 +65,9 @@ config:
"`config.yaml` was not found, a template has been created."
" Please fill out the necessary information and restart."
)
- sys.exit()
+ return False
+
+ return True
# Validate the options within config.yaml
@@ -78,7 +79,7 @@ def validate_config(file_contents):
jsonschema.validate(config, schema)
except jsonschema.ValidationError as e:
LOG.error(e.message)
- sys.exit()
+ return False
# Make IP_TO_LOCATION a boolean
IP_TO_LOCATION = bool(config["config"]["ip_to_location"])
diff --git a/dev.sh b/dev.sh
new file mode 100755
index 0000000..e9d2d0b
--- /dev/null
+++ b/dev.sh
@@ -0,0 +1,20 @@
+#! /bin/bash
+# If on Linux or MacOS - check tmux
+if [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
+ python3 linklogger.py &
+ cd app || return
+ yarn dev
+fi
+
+# If on Windows
+if [[ "$OSTYPE" == "msys" ]]; then
+ python3 linklogger.py &
+ cd app || return
+ yarn dev
+ # echo -e "This script is not supported on Windows. Please run the API and UI manually."
+ # echo -e "\t1. Install node.js, yarn, python3, and pip"
+ # echo -e "\t2. Run 'pip install -r requirements.txt' in the root directory"
+ # echo -e "\t3. Run 'python3 linklogger.py' in the root directory"
+ # echo -e "\t4. Run 'cd app' and then 'yarn dev'"
+ # exit 1
+fi \ No newline at end of file
diff --git a/linklogger.py b/linklogger.py
index 7222d3a..c456a16 100644
--- a/linklogger.py
+++ b/linklogger.py
@@ -8,5 +8,5 @@ from database import Base, engine
Base.metadata.create_all(bind=engine)
if __name__ == "__main__":
- config.load_config()
- uvicorn.run(app, port=5252)
+ if config.load_config():
+ uvicorn.run(app, port=5252)
diff --git a/linklogger.sh b/linklogger.sh
new file mode 100644
index 0000000..a2a0f44
--- /dev/null
+++ b/linklogger.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+# Start nginx in the background
+service nginx start
+
+# Run the Python script
+python -u linklogger.py \ No newline at end of file