mirror of
https://github.com/mkuf/prind.git
synced 2025-10-26 00:36:17 +02:00
KlipperScreen initial setup
* KlipperScreen Dockerfile * GitHub Workflow * klipperscreen.conf * klipperscreen service definition
This commit is contained in:
committed by
Markus Küffner
parent
c404c7136c
commit
96fc52b1cb
13
.github/workflows/klipperscreen.yaml
vendored
Normal file
13
.github/workflows/klipperscreen.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: 'Image: KlipperScreen'
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 2 * * *'
|
||||
jobs:
|
||||
build:
|
||||
uses: mkuf/prind/.github/workflows/image-workflow.yaml@main
|
||||
with:
|
||||
app: klipperscreen
|
||||
secrets:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
2
config/klipperscreen.conf
Normal file
2
config/klipperscreen.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
[printer prind]
|
||||
moonraker_port: 80
|
||||
@@ -124,6 +124,24 @@ services:
|
||||
- "traefik.http.routers.mainsail.rule=PathPrefix(`/`)"
|
||||
- "traefik.http.routers.mainsail.entrypoints=web"
|
||||
|
||||
klipperscreen:
|
||||
image: mkuf/klipperscreen:nightly
|
||||
container_name: klipperscreen
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
depends_on:
|
||||
moonraker:
|
||||
condition: service_started
|
||||
profiles:
|
||||
- klipperscreen
|
||||
command:
|
||||
- "-c"
|
||||
- "cfg/klipperscreen.conf"
|
||||
volumes:
|
||||
- ./config:/opt/cfg
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix
|
||||
- /home/kiosk/.Xauthority:/tmp/.Xauthority
|
||||
|
||||
## Accompanying Services/Infra
|
||||
##
|
||||
|
||||
|
||||
43
docker/klipperscreen/Dockerfile
Normal file
43
docker/klipperscreen/Dockerfile
Normal file
@@ -0,0 +1,43 @@
|
||||
FROM python:3 as build
|
||||
|
||||
ARG REPO=https://github.com/jordanruthe/KlipperScreen
|
||||
ARG VERSION=master
|
||||
|
||||
RUN apt update \
|
||||
&& apt install -y \
|
||||
libgirepository1.0-dev \
|
||||
&& apt clean
|
||||
|
||||
WORKDIR /opt
|
||||
RUN git clone ${REPO} klipperscreen \
|
||||
&& cd klipperscreen \
|
||||
&& git checkout ${VERSION}
|
||||
|
||||
RUN python -m venv venv \
|
||||
&& venv/bin/pip install -r klipperscreen/scripts/KlipperScreen-requirements.txt
|
||||
|
||||
FROM python:3-slim as run
|
||||
|
||||
RUN apt update \
|
||||
&& apt install -y \
|
||||
libglib2.0-0 \
|
||||
libgirepository-1.0-1 \
|
||||
gir1.2-gtk-3.0 \
|
||||
&& apt clean
|
||||
|
||||
WORKDIR /opt
|
||||
COPY --from=build /opt/klipperscreen ./klipperscreen
|
||||
COPY --from=build /opt/venv ./venv
|
||||
|
||||
RUN mkdir cfg
|
||||
RUN groupadd klipperscreen --gid 1000 \
|
||||
&& useradd klipperscreen --uid 1000 --gid klipperscreen \
|
||||
&& chown -R klipperscreen:klipperscreen /opt/*
|
||||
|
||||
## Start klipperscreen
|
||||
USER klipperscreen
|
||||
ENV XAUTHORITY=/tmp/.Xauthority
|
||||
ENV DISPLAY=:0
|
||||
VOLUME ["/opt/cfg"]
|
||||
ENTRYPOINT ["/opt/venv/bin/python", "klipperscreen/screen.py"]
|
||||
CMD ["-c", "cfg/klipperscreen.conf"]
|
||||
Reference in New Issue
Block a user