From b227b49519e6ef57d2415d370800b1e688a02bce Mon Sep 17 00:00:00 2001 From: Frank Mayer Date: Fri, 3 Jan 2025 05:01:31 +0100 Subject: [PATCH] init --- .editorconfig | 30 ++++++++++++++++++++++++++++++ .gitignore | 2 ++ docker-compose.yaml | 12 ++++++++++++ docker/Dockerfile | 32 ++++++++++++++++++++++++++++++++ docker/pulse-client.conf | 2 ++ server/go.mod | 3 +++ 6 files changed, 81 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 docker-compose.yaml create mode 100644 docker/Dockerfile create mode 100644 docker/pulse-client.conf create mode 100644 server/go.mod diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6dd56ac --- /dev/null +++ b/.editorconfig @@ -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 + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6f7425 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +gametube diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..7332e55 --- /dev/null +++ b/docker-compose.yaml @@ -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 diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..af629af --- /dev/null +++ b/docker/Dockerfile @@ -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 "\n" > /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"] diff --git a/docker/pulse-client.conf b/docker/pulse-client.conf new file mode 100644 index 0000000..47e98e8 --- /dev/null +++ b/docker/pulse-client.conf @@ -0,0 +1,2 @@ +default-server = unix:/tmp/pulse/native +autospawn = no diff --git a/server/go.mod b/server/go.mod new file mode 100644 index 0000000..5ece8c0 --- /dev/null +++ b/server/go.mod @@ -0,0 +1,3 @@ +module gametube + +go 1.23.3