111 lines
3.1 KiB
Bash
Executable file
111 lines
3.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
cd "$(pwd)"
|
|
|
|
echo "📦 Packaging Browser Tab Manager..."
|
|
echo "📂 Working from: $(pwd)"
|
|
|
|
if [ ! -f "Dockerfile" ] || [ ! -f "pubspec.yaml" ]; then
|
|
echo "❌ Error: Not in project root directory!"
|
|
echo " Expected files: Dockerfile, pubspec.yaml"
|
|
echo " Current directory: $(pwd)"
|
|
exit 1
|
|
fi
|
|
|
|
rm -rf ./dist
|
|
mkdir -p ./dist/browser-tab-manager
|
|
|
|
echo "📋 Copying files..."
|
|
cp ./Dockerfile ./dist/browser-tab-manager/
|
|
cp ./nginx.conf ./dist/browser-tab-manager/
|
|
cp ./pubspec.yaml ./dist/browser-tab-manager/
|
|
cp ./pubspec.lock ./dist/browser-tab-manager/ 2>/dev/null || true
|
|
cp -r ./lib ./dist/browser-tab-manager/
|
|
mkdir -p ./dist/browser-tab-manager/web
|
|
cp ./web/manifest.json ./dist/browser-tab-manager/web/ 2>/dev/null || true
|
|
|
|
cat > dist/browser-tab-manager/deploy.sh << 'DEPLOY_EOF'
|
|
#!/bin/bash
|
|
set -e
|
|
|
|
echo "🚀 Deploying Browser Tab Manager on Server..."
|
|
|
|
if [ ! -f "Dockerfile" ]; then
|
|
echo "❌ Error: Dockerfile not found. Are you in the right directory?"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p web
|
|
if [ ! -f "web/manifest.json" ]; then
|
|
cat > web/manifest.json << 'EOF'
|
|
{
|
|
"name": "Browser Tab Manager",
|
|
"short_name": "TabManager",
|
|
"start_url": ".",
|
|
"display": "standalone",
|
|
"background_color": "#0175C2",
|
|
"theme_color": "#0175C2",
|
|
"description": "Manage browser tabs in a grid view",
|
|
"orientation": "portrait-primary",
|
|
"prefer_related_applications": false
|
|
}
|
|
EOF
|
|
fi
|
|
|
|
echo "✅ Project structure ready"
|
|
|
|
echo "🔨 Building Podman container..."
|
|
podman build -t browser-tab-manager .
|
|
|
|
podman stop browser-tab-manager 2>/dev/null || true
|
|
podman rm browser-tab-manager 2>/dev/null || true
|
|
|
|
echo "🚢 Starting container..."
|
|
podman run -d \
|
|
--name browser-tab-manager \
|
|
-p 8081:80 \
|
|
--restart unless-stopped \
|
|
browser-tab-manager
|
|
|
|
echo "✅ Container started successfully!"
|
|
echo ""
|
|
|
|
echo "🌐 Your Browser Tab Manager is now running at:"
|
|
SERVER_IP=$(hostname -I | awk '{print $1}' 2>/dev/null || echo "your-server-ip")
|
|
echo " http://${SERVER_IP}:8081"
|
|
echo ""
|
|
echo "📋 Useful commands:"
|
|
echo " View logs: podman logs -f browser-tab-manager"
|
|
echo " Stop: podman stop browser-tab-manager"
|
|
echo " Start: podman start browser-tab-manager"
|
|
echo " Restart: podman restart browser-tab-manager"
|
|
echo " Remove: podman rm -f browser-tab-manager"
|
|
DEPLOY_EOF
|
|
|
|
chmod +x dist/browser-tab-manager/deploy.sh
|
|
|
|
echo "🗜️ Creating tarball..."
|
|
cd dist
|
|
tar -czf browser-tab-manager.tar.gz browser-tab-manager/
|
|
cd ..
|
|
|
|
echo "✅ Package created: dist/browser-tab-manager.tar.gz"
|
|
echo ""
|
|
echo "📤 To deploy on server:"
|
|
echo " 1. scp dist/browser-tab-manager.tar.gz root@188.245.68.196:/root/"
|
|
echo " 2. ssh root@188.245.68.196"
|
|
echo " 3. cd /root && tar -xzf browser-tab-manager.tar.gz"
|
|
echo " 4. cd browser-tab-manager && ./deploy.sh"
|
|
echo ""
|
|
echo "🌐 available at: https://tab.caesargaming.org"
|
|
|
|
|
|
# This script packages the app for server deployment.
|
|
|
|
# Copies all necessary files to a dist folder.
|
|
|
|
# Creates a deploy.sh script that will run on the server.
|
|
|
|
# Compresses everything into a tar.gz file for easy transfer.
|