From c2c84948743bddea2959a3adacc50a835c39bca7 Mon Sep 17 00:00:00 2001 From: jr-k Date: Thu, 16 May 2024 02:51:16 +0200 Subject: [PATCH] rename files --- .env.dist | 2 +- docker-compose.yml | 2 +- docs/setup-run-headless.md | 14 ++++++++++++-- docs/setup-run-on-rpi.md | 24 ++++++++++++++++-------- src/manager/ConfigManager.py | 10 ++++------ system/obscreen-player.service | 2 +- system/start-chromium.sh | 2 ++ 7 files changed, 37 insertions(+), 19 deletions(-) diff --git a/.env.dist b/.env.dist index b750865..6e8a3f9 100755 --- a/.env.dist +++ b/.env.dist @@ -1,4 +1,4 @@ DEBUG=false PORT=5000 SECRET_KEY=ANY_SECRET_KEY_HERE -PLAYER_AUTOSTART_FILE=/home/pi/obscreen/system/start-chromium.sh # Replace by "/dev/null" if not needed +PLAYER_AUTOSTART_FILE=./var/run/play # Replace by "/dev/null" if not needed diff --git a/docker-compose.yml b/docker-compose.yml index eb7cbc2..a381993 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: - PLAYER_AUTOSTART_FILE=/app/var/run/play - SECRET_KEY=ANY_SECRET_KEY_HERE volumes: - - /home/pi/obscreen/system/start-chromium.sh:/app/var/run/play + - ./var/run/play:/app/var/run/play - ./data/db:/app/data/db - ./data/uploads:/app/data/uploads ports: diff --git a/docs/setup-run-headless.md b/docs/setup-run-headless.md index 3626fa0..aab932d 100644 --- a/docs/setup-run-headless.md +++ b/docs/setup-run-headless.md @@ -6,6 +6,14 @@ --- ## 🐳 Run with docker +### Install docker if needed +```bash +curl -sSL get.docker.com | sh +sudo usermod -aG docker pi +logout +#then login again +``` + ### With docker (for test) ```bash # Prepare application data file tree @@ -41,12 +49,14 @@ docker compose up --detach --pull always ```bash # Install system dependencies sudo apt-get update -sudo apt-get install -y git +sudo apt-get install -y git python3-pip python3-venv # Get files git clone https://github.com/jr-k/obscreen.git && cd obscreen # Install application dependencies +python3 -m venv venv +source ./venv/bin/python pip3 install -r requirements.txt # Add some sample data @@ -62,7 +72,7 @@ cp .env.dist .env ### Start server (for test) ```bash -./obscreen.py +python ./obscreen.py ``` ### Start server forever with systemctl diff --git a/docs/setup-run-on-rpi.md b/docs/setup-run-on-rpi.md index 1860998..0ac5bb2 100644 --- a/docs/setup-run-on-rpi.md +++ b/docs/setup-run-on-rpi.md @@ -15,7 +15,7 @@ ### Install docker if needed ```bash curl -sSL get.docker.com | sh -sudo usermod -aG docker $(whoami) +sudo usermod -aG docker pi logout #then login again ``` @@ -23,11 +23,14 @@ logout ### With docker (for test) ```bash -# Prepare application data file tree and prepare player autostart file -cd /home/pi && mkdir -p obscreen/data/db obscreen/data/uploads obscreen/system && touch system/start-chromium.sh && cd obscreen +# Prepare application data file tree +cd /home/pi && mkdir -p obscreen/data/db obscreen/data/uploads && cd obscreen + +# Prepare player autostart file +mkdir -p var/run && touch var/run/play && chmod +x var/run/play # Run the Docker container -ocker run --rm --name obscreen --pull=always \ +docker run --rm --name obscreen --pull=always \ -e DEBUG=false \ -e PORT=5000 \ -e PLAYER_AUTOSTART_FILE=/app/var/run/play \ @@ -35,14 +38,17 @@ ocker run --rm --name obscreen --pull=always \ -p 5000:5000 \ -v ./data/db:/app/data/db \ -v ./data/uploads:/app/data/uploads \ - -v /home/pi/obscreen/system/start-chromium.sh:/app/var/run/play \ + -v ./var/run/play:/app/var/run/play \ jierka/obscreen:latest ``` ### Or with docker-compose ```bash # Prepare application data file tree -cd /home/pi && mkdir -p obscreen/data/db obscreen/data/uploads obscreen/system && touch system/start-chromium.sh && cd obscreen +cd /home/pi && mkdir -p obscreen/data/db obscreen/data/uploads obscreen/system && cd obscreen + +# Prepare player autostart file +mkdir -p var/run && touch var/run/play && chmod +x var/run/play # Download docker-compose.yml curl https://raw.githubusercontent.com/jr-k/obscreen/master/docker-compose.yml > docker-compose.yml @@ -56,12 +62,14 @@ docker compose up --detach --pull always ```bash # Install system dependencies sudo apt-get update -sudo apt-get install -y git +sudo apt-get install -y git python3-pip python3-venv # Get files git clone https://github.com/jr-k/obscreen.git && cd obscreen # Install application dependencies +python3 -m venv venv +source ./venv/bin/python pip3 install -r requirements.txt # Add some sample data @@ -77,7 +85,7 @@ cp .env.dist .env ### Start server (for test) ```bash -./obscreen.py +python ./obscreen.py ``` ### Start server forever with systemctl diff --git a/src/manager/ConfigManager.py b/src/manager/ConfigManager.py index 712817b..f34173e 100644 --- a/src/manager/ConfigManager.py +++ b/src/manager/ConfigManager.py @@ -12,7 +12,7 @@ load_dotenv() class ConfigManager: DEFAULT_PORT = 5000 - DEFAULT_PLAYER_AUTOSTART_PATH = '/home/pi/obscreen/system/start-chromium.sh' + DEFAULT_PLAYER_AUTOSTART_PATH = './var/run/play' VERSION_FILE = 'version.txt' def __init__(self, variable_manager: VariableManager): @@ -111,9 +111,8 @@ class ConfigManager: if os.path.isdir(path) or not os.path.exists(path): logging.error( - "Player autostart file {} doesn't exist on your server, please create it by executing follow command: \n'rm -rf ./var/run/play 2>/dev/null ; sudo touch {}'\n".format( - player_autostart_path, - self.DEFAULT_PLAYER_AUTOSTART_PATH + "Player autostart file {} doesn't exist on your server'\n".format( + player_autostart_path ) ) sys.exit(1) @@ -122,8 +121,7 @@ class ConfigManager: player_url = self.map().get('player_url') os.makedirs(os.path.dirname(player_autostart_path), exist_ok=True) - xenv_presets = """ -#!/bin/bash + xenv_presets = """#!/bin/bash # Disable screensaver and DPMS xset s off diff --git a/system/obscreen-player.service b/system/obscreen-player.service index c631117..3e41394 100644 --- a/system/obscreen-player.service +++ b/system/obscreen-player.service @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -ExecStart=/usr/bin/xinit /home/pi/obscreen/system/start-chromium.sh -- :0 -nolisten tcp vt7 -keeptty +ExecStart=/usr/bin/xinit /home/pi/obscreen/var/run/play -- :0 -nolisten tcp vt7 -keeptty User=pi Group=pi Restart=on-failure diff --git a/system/start-chromium.sh b/system/start-chromium.sh index 2ba2b8a..c7550dd 100755 --- a/system/start-chromium.sh +++ b/system/start-chromium.sh @@ -1,3 +1,4 @@ + #!/bin/bash # Disable screensaver and DPMS @@ -19,3 +20,4 @@ HEIGHT=$(echo $RESOLUTION | cut -d 'x' -f 2) # Start Chromium in kiosk mode chromium-browser --disable-features=Translate --ignore-certificate-errors --disable-web-security --disable-restore-session-state --autoplay-policy=no-user-gesture-required --start-maximized --allow-running-insecure-content --remember-cert-error-decisions --noerrdialogs --kiosk --incognito --window-position=0,0 --window-size=${WIDTH},${HEIGHT} --display=:0 http://localhost:5000 + \ No newline at end of file