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