π Complete Olares development and deployment skill for OpenCode AI, including automated tools and Nginx reverse proxy system.
OpenCode skill for developing and deploying applications to Olares - a self-hosted cloud operating system.
olares-dev.md- Enhanced skill file with DevBox Quick Deploy + Nginx reverse proxytemplates/- Boilerplate templates for quick chart creationtools/- NEW Automated deployment and management toolsdocs/- NEW Complete documentation and guides
- β
Direct
kubectldeployment (no Helm charts needed for dev) - β Automatic Nginx reverse proxy configuration
- β Unified entry point (port 3000) with path-based routing
- β OpenCode Server external access support
- β Zero-downtime configuration updates
External Browser
β HTTPS
https://{hash}-3000.{domain}/{path}
β
Olares Ingress β OpenCode Container (port 3000)
β
Nginx Reverse Proxy (path routing)
β
ββ / β localhost:4096 (OpenCode Server)
ββ /my-app/ β my-app-svc:port
ββ /health β Nginx health check
# Install to system
mkdir -p ~/.local/bin ~/.local/lib
cp tools/olares-* ~/.local/bin/
cp tools/olares_deployer.py ~/.local/lib/
chmod +x ~/.local/bin/olares-*
# Add to PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc# Install to OpenCode
cp olares-dev.md ~/.config/opencode/skills/# 1. Deploy application
olares-deploy my-app python:3.11-slim 8080 "python app.py"
# 2. Update Nginx config (REQUIRED)
python3 ~/.local/bin/olares-nginx-config
# 3. Access at:
# https://{hash}-3000.{domain}/my-app/# Step 1: Deploy
olares-deploy app-name image:tag port "startup-command"
# Step 2: Update Nginx (Mandatory!)
python3 olares-nginx-config
# Step 3: Access
https://{hash}-3000.{domain}/app-name/olares-deploy- Deploy apps to Kubernetesolares-nginx-config- Generate/update Nginx reverse proxy configsolares_deployer.py- Python API for programmatic deployment
olares-manage- Manage deployed apps (list, info, logs, delete)olares-urls- Show all deployed app URLsolares-init- Initialize environment (install kubectl, verify RBAC)
| Document | Description |
|---|---|
olares-dev.md |
Complete OpenCode skill definition |
docs/FINAL_SOLUTION.md |
Complete architecture and solution guide |
docs/NGINX_PROXY_COMPLETE.md |
Nginx configuration detailed guide |
docs/SOLUTION_SUMMARY.md |
Problem and solution summary |
https://{hash}-3000.{domain}/
Root path for OpenCode Server (port 4096).
# By app name
https://{hash}-3000.{domain}/my-app/
# By port number
https://{hash}-3000.{domain}/8080/
# Health check
https://{hash}-3000.{domain}/health
For production apps intended for Olares Market:
# Use templates
cp templates/* my-app/
# Edit Chart.yaml, OlaresManifest.yaml, etc.
# Package and deploy via Studio UIFor rapid development and testing:
# Just run deploy command
olares-deploy my-app python:3.11-slim 8080 "python app.py"
python3 olares-nginx-config
# App is live immediately!# Create app
echo '<h1>Hello World</h1>' > index.html
# Deploy
olares-deploy hello-world python:3.11-slim 8080 "python -m http.server 8080"
# Update Nginx
python3 olares-nginx-config
# Access
https://{hash}-3000.{domain}/hello-world/- Application Packaging - Helm chart structure + OlaresManifest.yaml
- Database Provisioning - PostgreSQL, Redis, MongoDB integration
- Permission Configuration - App data, user data, system APIs
- Deployment Workflow - Studio UI steps, Playwright automation
- Troubleshooting - Common issues and solutions
- One-Command Deployment - No Helm charts needed
- Automatic Nginx Proxy - Unified entry with path routing
- OpenCode Server Support - External access to development tools
- Zero Downtime - Graceful Nginx reloads
- Auto Framework Detection - Flask, FastAPI, Express, Django
- Unified Entry Point: All requests through port 3000
- Path-Based Routing: Different apps on different URL paths
- OpenCode Server: Root path (
/) for development environment - Automatic Configuration: One command to update all proxy rules
- No Port Conflicts: Unlimited apps without port exhaustion
Traditional Concepts:
- No REST API: Olares deployment is through Studio UI (automate with Playwright)
- System Services: PostgreSQL/Redis/MongoDB are pre-installed, just declare in manifest
- User Isolation: Each user gets isolated app instances
# Did you update Nginx?
python3 olares-nginx-config
# Check Nginx status
python3 olares-nginx-config status# Check if pod is running
kubectl get pods -n namespace -l app=app-name
# View logs
kubectl logs -n namespace -l app=app-name# View generated config
cat /etc/nginx/conf.d/dev/app-name.conf
# Test Nginx config
nginx -t
# Reload Nginx
nginx -s reload- GitHub Issues: https://github.com/longzhi/olares-skill/issues
- Olares Documentation: https://docs.olares.com/developer/develop/
- Official App Repository: https://github.com/beclab/apps
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a Pull Request
MIT License
π Happy Developing on Olares!