Complete Elasticsearch integration for JavaZone - all in one repository!
AWS (via Terraform):
- SQS queues (main + DLQ)
- webhook-receiver Lambda (API Gateway)
- es-indexer-worker Lambda (SQS triggered)
Coolify (manual):
- Elasticsearch 8.11.0
Cost: ~$2-5/month AWS + $0 Coolify = ~$2-5/month total
-
Coolify → New Resource → Docker Image
-
Image:
elasticsearch:8.11.0 -
Environment:
discovery.type=single-node xpack.security.enabled=true ELASTIC_PASSWORD=bi75Xtl3KPXI4CS7QRU8TrFRpF3mV1qX ES_JAVA_OPTS=-Xms1g -Xmx1g -
Volume:
/data/elasticsearch→/usr/share/elasticsearch/data -
Port:
9200 -
Deploy
-
Create index:
curl -X PUT "http://your-es-url:9200/javazone_talks" \ -u elastic:bi75Xtl3KPXI4CS7QRU8TrFRpF3mV1qX \ -H "Content-Type: application/json" \ -d @config/index-mapping.json
-
Update GitHub secret with your ES URL:
gh secret set ELASTICSEARCH_URL --body "http://your-elasticsearch-domain:9200"
Push to main or manually trigger workflow:
https://github.com/javaBin/elasticsearch-javazone/actions
Deploys: SQS + 2 Lambdas (~2 minutes)
Use webhook URL from GitHub Actions output:
WEBHOOK_ENABLED=true
WEBHOOK_ENDPOINT=<url-from-output>
WEBHOOK_SECRET=7faa5e7879e189dfdeab497f647a88e15abcd7be4c2209f318465e764547d258Redeploy moresleep.
Create a talk → Check ES within 10 seconds:
curl -u elastic:pass "http://your-es-url:9200/javazone_talks/_search?q=test"Total setup time: ~10 minutes Monthly cost: ~$2-5
Perfect! 🎉