Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commit3644238unknown_key

feat: Crontech ecosystem deployment + updated deploy docs

feat: Crontech ecosystem deployment + updated deploy docs

- Added crontech-deploy.sh for deploying through the Crontech ecosystem
- Updated DEPLOY.md with Option A (Crontech) and Option B (standalone)
- Ecosystem loop: Crontech deploys gluecron, gluecron hosts Crontech's
  code, GateTest scans both — dog food the whole stack

https://claude.ai/code/session_013wpQ5iX7qU6zy6PrtML3fP
Claude committed on April 18, 2026Parent: 8ade77b
2 files changed+10753644238d7a893767fa4dc70785f12427aad86b43
2 changed files+107−5
ModifiedDEPLOY.md+41−5View fileUnifiedSplit
11# Deploying Gluecron to Production
22
3## Prerequisites
3## The Green Ecosystem
44
51. A server (Hetzner, DigitalOcean, etc.) with Ubuntu 22.04+
62. A Neon PostgreSQL database (free tier: https://neon.tech)
73. Domain pointed to the server (gluecron.com → server IP)
5Gluecron is part of the self-hosting ecosystem:
6- **Crontech** deploys gluecron (and everything else)
7- **Gluecron** hosts the code for Crontech, GateTest, and itself
8- **GateTest** scans every push to gluecron
89
9## Quick Deploy (one command)
10Once live, all three services feed each other. Dog food all the way.
11
12## Option A: Deploy via Crontech (recommended)
13
14Since Crontech handles deployment, routing, and SSL:
15
16```bash
17# 1. Create Neon database at neon.tech (2 minutes)
18# Copy the connection string
19
20# 2. In Crontech, deploy gluecron as a service with:
21# - Repo: ccantynz-alt/Gluecron.com
22# - Branch: claude/ship-fixes-and-tests-Jvz1c
23# - Build: bun install --production
24# - Start: bun run src/index.ts
25# - Port: 3000
26#
27# Environment variables:
28# DATABASE_URL = postgresql://your-neon-url
29# GIT_REPOS_PATH = /data/repos
30# PORT = 3000
31# NODE_ENV = production
32#
33# Persistent volume: mount /data/repos (for git repos on disk)
34
35# 3. Run the migration (one time):
36# Paste drizzle/0000_init.sql into Neon's SQL Editor and run it
37
38# 4. Route gluecron.com (or gluecron.crontech.ai) to the service
39```
40
41### Crontech routing options:
42- **Subdomain:** `gluecron.crontech.ai` → fastest to set up
43- **Custom domain:** `gluecron.com` → add CNAME to Crontech in DNS
44
45## Option B: Direct Deploy (Hetzner/standalone)
1046
1147```bash
1248# 1. SSH into your server
Addedscripts/crontech-deploy.sh+66−0View fileUnifiedSplit
1#!/bin/bash
2set -euo pipefail
3
4# ============================================
5# Gluecron via Crontech Deployment
6#
7# This deploys gluecron through the Crontech ecosystem.
8# Crontech handles routing, SSL, and domain management.
9# gluecron hosts the code. GateTest scans it.
10# The ecosystem feeds itself.
11# ============================================
12
13APP_NAME="gluecron"
14
15echo "=========================================="
16echo " Deploying $APP_NAME via Crontech"
17echo "=========================================="
18
19# Check DATABASE_URL
20if [ -z "${DATABASE_URL:-}" ]; then
21 echo "ERROR: Set DATABASE_URL first."
22 echo " export DATABASE_URL='postgresql://...'"
23 exit 1
24fi
25
26# Run database migration
27echo "Running database migration..."
28if command -v psql &>/dev/null; then
29 psql "$DATABASE_URL" -f drizzle/0000_init.sql 2>&1 | tail -5
30 echo "Migration complete."
31else
32 echo "psql not found — run drizzle/0000_init.sql manually against your Neon DB."
33 echo "You can do this from Neon's web console (SQL Editor)."
34fi
35
36# Install deps if needed
37if [ ! -d "node_modules" ]; then
38 echo "Installing dependencies..."
39 bun install --production
40fi
41
42# Create repos directory
43mkdir -p "${GIT_REPOS_PATH:-./repos}"
44
45echo ""
46echo "=========================================="
47echo " Ready for Crontech deployment"
48echo "=========================================="
49echo ""
50echo " Start command: bun run src/index.ts"
51echo " Port: ${PORT:-3000}"
52echo " Repos dir: ${GIT_REPOS_PATH:-./repos}"
53echo ""
54echo " Environment variables needed:"
55echo " DATABASE_URL = (your Neon connection string)"
56echo " GIT_REPOS_PATH = /data/repos (or persistent volume)"
57echo " PORT = 3000"
58echo " NODE_ENV = production"
59echo ""
60echo " If Crontech routes via subdomain:"
61echo " gluecron.crontech.ai -> this service"
62echo ""
63echo " If Crontech routes via custom domain:"
64echo " gluecron.com -> this service"
65echo " (Crontech handles SSL + DNS)"
66echo ""
067