61 lines
1.7 KiB
Bash
Executable File
61 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# PocketBase Docker Setup Script
|
|
# Quickly spin up a PocketBase instance with Docker
|
|
|
|
set -e
|
|
|
|
echo "🚀 Setting up PocketBase with Docker..."
|
|
echo "========================================"
|
|
|
|
# Configuration
|
|
CONTAINER_NAME="pocketbase"
|
|
PORT="8090"
|
|
DATA_DIR="./pb_data"
|
|
|
|
# Check if Docker is installed
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "❌ Docker is not installed. Please install Docker first."
|
|
echo " Visit: https://docs.docker.com/get-docker/"
|
|
exit 1
|
|
fi
|
|
|
|
# Stop and remove existing container if it exists
|
|
if docker ps -a | grep -q "$CONTAINER_NAME"; then
|
|
echo "⚠️ Stopping existing PocketBase container..."
|
|
docker stop "$CONTAINER_NAME" > /dev/null 2>&1
|
|
docker rm "$CONTAINER_NAME" > /dev/null 2>&1
|
|
fi
|
|
|
|
# Create data directory
|
|
echo "📁 Creating data directory: $DATA_DIR"
|
|
mkdir -p "$DATA_DIR"
|
|
|
|
# Start new container
|
|
echo "🐳 Starting PocketBase container..."
|
|
docker run -d \
|
|
--name "$CONTAINER_NAME" \
|
|
-p "$PORT:8090" \
|
|
-v "$DATA_DIR:/pb/pb_data" \
|
|
ghcr.io/pocketbase/pocketbase:latest serve --http=0.0.0.0:8090
|
|
|
|
echo "========================================"
|
|
echo "✅ PocketBase is starting up!"
|
|
echo ""
|
|
echo "🌐 Admin UI: http://localhost:$PORT/_/"
|
|
echo "📖 API Docs: http://localhost:$PORT/api/docs"
|
|
echo "📁 Data directory: $DATA_DIR"
|
|
echo ""
|
|
echo "To view logs: docker logs -f $CONTAINER_NAME"
|
|
echo "To stop: docker stop $CONTAINER_NAME"
|
|
echo ""
|
|
echo "⏳ Waiting for PocketBase to be ready..."
|
|
sleep 3
|
|
|
|
# Check if container is running
|
|
if docker ps | grep -q "$CONTAINER_NAME"; then
|
|
echo "✅ PocketBase is running successfully!"
|
|
else
|
|
echo "❌ Something went wrong. Check logs with: docker logs $CONTAINER_NAME"
|
|
exit 1
|
|
fi
|