Initial commit
Some checks failed
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline failed

This commit is contained in:
Mike 2024-12-19 12:22:54 +00:00
commit bd411d948b
5 changed files with 223 additions and 0 deletions

18
.woodpecker.yaml Normal file
View file

@ -0,0 +1,18 @@
steps:
- name: Overte Domain Server AIO Docker
when:
- branch: main
event: tag
image: woodpeckerci/plugin-docker-buildx:4.2
settings:
platforms: linux/amd64
repo: alveusdev/overtedomainserver
tags: latest
auto_tag: true
build_args:
- TAG=${CI_COMMIT_TAG}
- REPO=https://github.com/overte-org/overte
username:
from_secret: DOCKERHUB_USER
password:
from_secret: DOCKERHUB_TOKEN

90
Dockerfile Normal file
View file

@ -0,0 +1,90 @@
FROM alveusdev/overtedomainserver-buildenv:latest AS build
ARG REPO=https://github.com/overte-org/overte
ARG TAG=master
ARG DEBIAN_FRONTEND=noninteractive
ARG TERM=linux
ARG MAKEFLAGS=-j2
ARG TARGETARCH
# Create build and output directory
RUN mkdir /opt/overte-build \
&& mkdir /opt/overte
# Fetch repository
RUN git clone --depth 1 --branch $TAG $REPO /opt/overte-build/
# Build just the server
RUN cd /opt/overte-build \
&& mkdir build \
&& cd ./build \
&& export OVERTE_USE_SYSTEM_QT=1 \
&& export RELEASE_TYPE=PRODUCTION \
&& cmake -DSERVER_ONLY=1 -DOVERTE_CPU_ARCHITECTURE=-msse3 ..
RUN cd /opt/overte-build/build \
&& make
# Move built binraries etc to output directory
RUN mv /opt/overte-build/build/libraries /opt/overte/libraries \
&& mv /opt/overte-build/build/assignment-client/assignment-client /opt/overte/assignment-client \
&& mv /opt/overte-build/build/assignment-client/plugins /opt/overte/plugins \
&& mv /opt/overte-build/build/domain-server/domain-server /opt/overte/domain-server \
&& mv /opt/overte-build/domain-server/resources /opt/overte/resources
# Runtime
FROM --platform=$BUILDPLATFORM debian:bookworm-slim AS runtime
LABEL maintainer="alveus.dev"
LABEL description="Overte Domain Server AIO"
ARG DEBIAN_FRONTEND=noninteractive
ARG TERM=linux
ARG TARGETARCH
RUN echo UTC >/etc/timezone
RUN echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf.d/00-docker
RUN echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/00-docker
# Install dependencies
RUN apt update && apt install -y tzdata supervisor libopengl-dev ca-certificates \
libqt5widgets5 libqt5network5 libqt5script5 libqt5core5a libqt5qml5 libqt5websockets5 libqt5gui5 libnode108
# Cleanup
RUN apt clean && rm -rf /var/lib/app/lists/*
# Install libraries
COPY --from=build /opt/overte/libraries/*/*.so /lib/
RUN mkdir /opt/overte
# Fetch built services
COPY --from=build /opt/overte/domain-server /opt/overte
COPY --from=build /opt/overte/assignment-client /opt/overte
COPY --from=build /opt/overte/plugins /opt/overte/plugins
COPY --from=build /opt/overte/resources /opt/overte/resources
RUN chmod +x /opt/overte/domain-server && \
chmod +x /opt/overte/assignment-client
# Run test
RUN /opt/overte/domain-server --version > /opt/overte/version && \
/opt/overte/assignment-client --version >> /opt/overte/version
# Install supervisor config
COPY ./services.conf /etc/supervisor/conf.d/overte.conf
RUN useradd -Ms /bin/bash services
RUN mkdir /var/log/overte
# Expose required ports
EXPOSE 40100 40101 40102
EXPOSE 40100/udp 40101/udp 40102/udp
EXPOSE 48000/udp 48001/udp 48002/udp 48003/udp 48004/udp 48005/udp 48006/udp
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/overte.conf"]

9
LICENSE Normal file
View file

@ -0,0 +1,9 @@
MIT License
Copyright (c) 2024 misc
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

39
README.md Normal file
View file

@ -0,0 +1,39 @@
# Overte Domain Server AIO
All-in-one docker image for Overte Domain Server hosting.
Contains: Domain server, Assignment servers for Audio Mixer, Avatar Mixer, Entities Server, Asset Server, Entity Script Server, Messages Server, Scripted Agent.
---
Please refer to overte documentation for how to configure the domain server (https://docs.overte.org/en/latest/host/configure-settings.html).
---
Pull from docker: `alveusdev/overtedomainserver:latest`
Currently only available for amd64 architecture.
---
Exposed ports:
- 40100/tcp
- 40101/tcp
- 40102/tcp
- 40100/udp
- 40101/udp
- 40102/udp
- 48000/udp
- 48001/udp
- 48002/udp
- 48003/udp
- 48004/udp
- 48005/udp
- 48006/udp
Domain server web UI available on port `40100` (HTTP)
---
[![status-badge](https://wci.alveus.dev/api/badges/31/status.svg)](https://wci.alveus.dev/repos/31)

67
services.conf Normal file
View file

@ -0,0 +1,67 @@
[supervisord]
user=root
nodaemon=true
[program:domain-server]
command=/opt/overte/domain-server
user=services
autorestart=unexpected
directory=/opt/overte/
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:audio-mixer]
command=/opt/overte/assignment-client -t 0 -a localhost -p 48000
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:avatar-mixer]
command=/opt/overte/assignment-client -t 1 -a localhost -p 48001
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:entities-server]
command=/opt/overte/assignment-client -t 6 -a localhost -p 48006
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:asset-server]
command=/opt/overte/assignment-client -t 3 -a localhost -p 48003
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:entity-script-server]
command=/opt/overte/assignment-client -t 5 -a localhost -p 48005
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:messages-mixer]
command=/opt/overte/assignment-client -t 4 -a localhost -p 48004
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log
[program:scripted-agent]
command=/opt/overte/assignment-client -t 2 -a localhost --max 100
user=services
autorestart=unexpected
directory=/opt/overte
stderr_logfile=/var/log/overte/overte-err.log
stdout_logfile=/var/log/overte/overte-out.log