Commit Graph
11 Commits
Author SHA1 Message Date
Juan DenisandClaude Opus 4.5 2c4976e4f5 feat: Add Docker cleanup to install/update and --force flag
- Add docker network prune and docker system prune before builds
- Use --no-cache for docker compose build to ensure fresh builds
- Add --force / -f flag to skip version check during update
- Helps prevent Docker networking issues

Usage: sudo serverkit update --force

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 23:38:13 -05:00
Juan DenisandClaude Opus 4.5 49d6ef27d4 fix: Version comparison not exiting early due to set -e
The compare_versions function returns non-zero values to indicate
version differences, but 'set -e' was causing bash to exit.
Now temporarily disabling exit-on-error during version comparison.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 23:07:11 -05:00
Juan DenisandClaude Opus 4.5 8bccfcdcf8 feat: Add automatic versioning system
- Add VERSION file (starting at 1.0.0)
- Add GitHub Actions workflow to auto-bump version on push
  - patch: default for all commits
  - minor: commits starting with "feat:" or "feature:"
  - major: commits starting with "BREAKING:" or "major:"
- Add CLI commands: version, check-update
- Update 'serverkit update' to show semantic versions
- Compare local vs remote version before updating

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 23:00:10 -05:00
Juan DenisandClaude Opus 4.5 b43bae9a49 Fix: Copy app templates to /etc/serverkit/templates during install
- Install script now copies bundled YAML templates to system directory
- Update command syncs templates on each update
- Creates /var/serverkit/apps directory for installed apps

Fixes 'No templates found' in Templates page.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:41:10 -05:00
Juan DenisandClaude Opus 4.5 736deb0832 Fix: Prevent getcwd errors by ensuring valid working directory
- install.sh now starts with cd /tmp to ensure valid directory
- uninstall command moves to /tmp before deleting install dir
- Shows reinstall command after uninstall

Prevents 'cannot access parent directories' errors when running
install from a deleted directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:33:40 -05:00
Juan DenisandClaude Opus 4.5 2c8f8f4b64 Fix: Restore executable permissions after git update
The update command now restores chmod +x on serverkit and scripts
after git reset --hard to prevent permission denied errors.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:26:45 -05:00
Juan DenisandClaude Opus 4.5 cab18a32b7 Consolidate templates into backend/templates marketplace
- Removed duplicate root templates/ folder
- Added PHP, Python, Node.js templates to marketplace (YAML format)
- Templates now installable via web UI Templates page
- CLI create-app now points users to web UI
- All 63 templates in one place: backend/templates/

New templates:
- php-app: Custom PHP 8.0-8.3 with Apache
- python-app: Custom Python 3.9-3.12 (Flask/FastAPI/Django)
- node-app: Custom Node.js 18-21 (Express/Next.js)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:23:50 -05:00
Juan DenisandClaude Opus 4.5 e65c680ba2 Add Docker-based app templates for PHP, Python, and Node.js
No need to install PHP/Python/Node on the host - each app runs
in its own isolated Docker container with the exact version needed.

Templates:
- PHP: nginx + php-fpm (8.0, 8.1, 8.2, 8.3)
- Python: Flask/FastAPI/Django (3.9-3.12)
- Node.js: Express/Next.js (18, 20, 21)

New CLI commands:
- create-app <type> <name> [port] - Create new app from template
- list-apps - List all deployed apps
- start-app <name> - Start an app
- stop-app <name> - Stop an app
- app-logs <name> - View app logs

Usage:
  sudo serverkit create-app php myblog
  sudo serverkit create-app python myapi 8200
  sudo serverkit add-site myblog.domain.com 8100

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:17:46 -05:00
Juan DenisandClaude Opus 4.5 eebb37fd5b Add multi-site support with host nginx reverse proxy
- Host nginx routes domains to different apps
- ServerKit frontend moved to port 8080 (internal)
- New CLI commands: setup-proxy, add-site, list-sites, remove-site
- Site config templates for easy domain setup
- Install script now sets up nginx proxy automatically

Usage:
  sudo serverkit add-site test.example.com 3000
  sudo serverkit list-sites
  sudo serverkit remove-site test.example.com

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 22:04:26 -05:00
Juan Denis c95d01b2fb Refactor to run backend on host, frontend in Docker
Removed docker-compose.prod.yml and updated docker-compose.yml to only run the frontend in Docker, with the backend now running as a systemd service on the host. Updated nginx and frontend nginx.conf to proxy API requests to the backend on the host. Added serverkit-backend.service for systemd management of the backend. Refactored install.sh and serverkit CLI to support the new architecture, including improved installation, update, and management commands.
2026-01-18 21:15:31 -05:00
Juan Denis c1d60f112f Add ServerKit CLI, install script, and deployment improvements
Introduces a comprehensive Bash CLI tool (`serverkit`) for managing ServerKit services, users, and database operations. Adds a quick-install script (`install.sh`) for Ubuntu, a sample environment file (`.env.example`), and a Python CLI backend (`backend/cli.py`) for administrative tasks. Updates Docker Compose for production readiness, enhances deployment documentation, and adds Click to backend requirements. Also updates references to the correct GitHub repository.
2026-01-17 12:13:22 -05:00