feat(deploy): add Docker build and deployment configuration
- Add Dockerfile based on jitsi/web with custom web client - Add docker-compose.yml for local testing - Add deploy.sh script for automated builds and deployment - Add .dockerignore to optimize Docker builds Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
237f2c5cdf
commit
b6fc0ae0b5
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Build artifacts
|
||||||
|
build/
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Git
|
||||||
|
.git/
|
||||||
|
.github/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Mobile
|
||||||
|
android/
|
||||||
|
ios/
|
||||||
|
|
||||||
|
# Tests
|
||||||
|
tests/
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
docs/
|
||||||
|
*.md
|
||||||
|
!README.md
|
||||||
|
|
||||||
|
# Development files
|
||||||
|
.devcontainer/
|
||||||
|
*.log
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Jeffsi Meet - Custom Jitsi Web Image
|
||||||
|
# Based on jitsi/web with custom web client code
|
||||||
|
|
||||||
|
FROM jitsi/web:stable
|
||||||
|
|
||||||
|
# Copy our custom built files
|
||||||
|
COPY libs/ /usr/share/jitsi-meet/libs/
|
||||||
|
COPY css/all.css /usr/share/jitsi-meet/css/all.css
|
||||||
|
COPY lang/ /usr/share/jitsi-meet/lang/
|
||||||
|
COPY images/ /usr/share/jitsi-meet/images/
|
||||||
|
COPY sounds/ /usr/share/jitsi-meet/sounds/
|
||||||
|
COPY fonts/ /usr/share/jitsi-meet/fonts/
|
||||||
|
COPY static/ /usr/share/jitsi-meet/static/
|
||||||
|
COPY resources/ /usr/share/jitsi-meet/resources/
|
||||||
|
|
||||||
|
# Copy HTML files
|
||||||
|
COPY *.html /usr/share/jitsi-meet/
|
||||||
|
COPY *.js /usr/share/jitsi-meet/
|
||||||
|
|
||||||
|
# Copy config templates
|
||||||
|
COPY config.js /defaults/config.js
|
||||||
|
COPY interface_config.js /defaults/interface_config.js
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Deploy Jeffsi Meet to Netcup server
|
||||||
|
set -e
|
||||||
|
|
||||||
|
IMAGE_NAME="jeffsi-meet-web"
|
||||||
|
IMAGE_TAG="latest"
|
||||||
|
REMOTE_HOST="netcup"
|
||||||
|
REMOTE_DIR="/opt/jeffsi-meet"
|
||||||
|
|
||||||
|
echo "=== Building Jeffsi Meet ==="
|
||||||
|
|
||||||
|
# Build the web client
|
||||||
|
echo "Building web client..."
|
||||||
|
make all
|
||||||
|
|
||||||
|
# Build Docker image
|
||||||
|
echo "Building Docker image..."
|
||||||
|
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
|
||||||
|
|
||||||
|
# Save image to tar
|
||||||
|
echo "Saving Docker image..."
|
||||||
|
docker save ${IMAGE_NAME}:${IMAGE_TAG} | gzip > /tmp/jeffsi-meet-web.tar.gz
|
||||||
|
|
||||||
|
# Copy to server
|
||||||
|
echo "Copying image to server..."
|
||||||
|
scp /tmp/jeffsi-meet-web.tar.gz ${REMOTE_HOST}:/tmp/
|
||||||
|
|
||||||
|
# Load image on server and restart
|
||||||
|
echo "Loading image on server and restarting..."
|
||||||
|
ssh ${REMOTE_HOST} << 'EOF'
|
||||||
|
cd /opt/jeffsi-meet
|
||||||
|
|
||||||
|
# Load the new image
|
||||||
|
docker load < /tmp/jeffsi-meet-web.tar.gz
|
||||||
|
|
||||||
|
# Restart the web container with the new image
|
||||||
|
docker compose -f docker-compose.jeffsi.yml up -d --force-recreate web
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
rm /tmp/jeffsi-meet-web.tar.gz
|
||||||
|
|
||||||
|
echo "Deployment complete!"
|
||||||
|
docker ps | grep jeffsi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Clean up local tar
|
||||||
|
rm /tmp/jeffsi-meet-web.tar.gz
|
||||||
|
|
||||||
|
echo "=== Deployment finished ==="
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Jeffsi Meet - Docker Compose for building custom web image
|
||||||
|
# This builds the custom web image locally for testing
|
||||||
|
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: jeffsi-meet-web:latest
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
environment:
|
||||||
|
- PUBLIC_URL=http://localhost:8080
|
||||||
|
- DISABLE_HTTPS=1
|
||||||
Loading…
Reference in New Issue