This commit is contained in:
Frank Mayer 2025-01-03 05:01:31 +01:00
commit b227b49519
Signed by: tsukinoko-kun
GPG Key ID: 427B3E61E69C2E51
6 changed files with 81 additions and 0 deletions

30
.editorconfig Normal file
View File

@ -0,0 +1,30 @@
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[{Makefile,go.mod,go.sum,*.go,*.templ,.gitmodules}]
charset = utf-8
indent_style = tab
tab_width = 4
indent_size = 4
[*.md]
indent_size = 4
trim_trailing_whitespace = false
eclint_indent_style = unset
[Dockerfile]
indent_style = space
indent_size = 4
[{*.js,*.ts}]
charset = utf-8
indent_style = space
tab_width = 4
indent_size = 4

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.DS_Store
gametube

12
docker-compose.yaml Normal file
View File

@ -0,0 +1,12 @@
---
services:
server:
build:
context: .
dockerfile: ./docker/Dockerfile
stdin_open: true
tty: true
environment:
- DISPLAY=:99
- PULSE_SERVER=unix:/tmp/pulse/native
command: bash

32
docker/Dockerfile Normal file
View File

@ -0,0 +1,32 @@
FROM golang:1 AS build
WORKDIR /server
COPY ./server/ /server
RUN go build -o gametube ./cmd/gametube/
FROM ubuntu:noble
ENV DEBIAN_FRONTEND=noninteractive \
DISPLAY=:99 \
PULSE_SERVER=unix:/tmp/pulse/native
RUN apt-get update && apt-get install -y --no-install-recommends \
xvfb \
openbox \
pulseaudio \
ffmpeg \
dbus-x11 \
x11-utils \
wget \
ca-certificates \
x11-xkb-utils xkb-data \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /etc/xdg/openbox && \
echo "<openbox_menu>\n</openbox_menu>" > /etc/xdg/openbox/menu.xml
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
RUN useradd -m -s /bin/bash gametube
RUN mkdir -p /etc/pulse /var/run/pulse /tmp/pulse /run/user/1000 && \
chown -R gametube:gametube /etc/pulse /var/run/pulse /tmp/pulse /run/user/1000
COPY ./docker/pulse-client.conf /etc/pulse/client.conf
COPY --from=build /server/gametube /home/gametube/bin/gametube
RUN chmod 777 /home/gametube/bin/gametube
USER gametube
WORKDIR /home/gametube
ENTRYPOINT ["/home/gametube/bin/gametube"]

2
docker/pulse-client.conf Normal file
View File

@ -0,0 +1,2 @@
default-server = unix:/tmp/pulse/native
autospawn = no

3
server/go.mod Normal file
View File

@ -0,0 +1,3 @@
module gametube
go 1.23.3