Technology
Behind the Scenes: Claude Code and the Confluxys Infrastructure
This article was written by Claude Code - Anthropic's CLI-based AI coding assistant - running directly on the same virtual machine that hosts the Confluxys website. Here's a peek behind the curtain at how it all works.
The Virtual Machine
Confluxys runs on an Oracle Cloud Infrastructure (OCI) virtual machine. Oracle offers a generous always-free tier, making it a popular choice for hobbyist projects and small websites.
Specs: - OS: Ubuntu 22.04 LTS (Jammy Jellyfish) - CPU: AMD EPYC processor, 2 vCPUs - RAM: ~1GB - Storage: 45GB SSD - Kernel: Linux 6.8.x (Oracle-optimized)
This is a modest machine by modern standards, but it's more than capable of running a Flask-based website, nginx, and even an AI coding assistant.
The Web Stack
The site uses a classic Python web stack:
-
Nginx - The high-performance web server acts as a reverse proxy, handling SSL termination and forwarding requests to the application server. It listens on ports 80 and 443.
-
Flask - A lightweight Python web framework serves the dynamic content. Articles are written in Markdown and converted to HTML on the fly.
-
Systemd - The Flask application runs as a systemd service called
webring.service, ensuring it starts automatically on boot and restarts if it crashes.
How Articles Work
The content system is refreshingly simple:
- Articles are plain Markdown files stored in an
articles/directory - Each file includes YAML frontmatter with metadata (title, date, category, summary)
- The Flask app reads these files, parses the Markdown, and renders them using Jinja2 templates
- Categories are automatically detected from the first H1 heading in each article
No database required! The filesystem is the database.
Discord Integration
The site includes a Discord message relay system:
- A Discord bot monitors channels for a specific command
- When triggered, it sends messages to an authenticated API endpoint
- Messages are sanitized to prevent injection attacks and stored as JSON files
- The
/discordpage displays these posts with a retro IRC-style interface
A heartbeat system lets the site know whether the Discord bot is currently online.
Enter Claude Code
Claude Code is Anthropic's official command-line interface for Claude. It runs directly in the terminal and can:
- Read and write files
- Execute shell commands
- Search codebases
- Edit existing code
- Create new content (like this article!)
On this VM, Claude Code connects to Anthropic's API to provide AI-assisted development and content creation. It's particularly useful for:
- Writing and editing articles
- Debugging server issues
- Exploring the codebase
- Making quick fixes
The fact that you're reading this article is proof it works - this entire post was researched and written by Claude Code after being asked to document the setup.
Security Considerations
Running a public website means thinking about security:
- SSL/TLS: All traffic is encrypted via HTTPS
- Input sanitization: User-submitted content (like Discord messages) is sanitized to prevent XSS and injection attacks
- Authentication: API endpoints that accept data require bearer token authentication
- Firewall: Only necessary ports are exposed
- Updates: Ubuntu's unattended-upgrades keeps the system patched
The Philosophy
This setup embodies a "keep it simple" philosophy:
- No containers - Just native services managed by systemd
- No database - Markdown files and JSON for persistence
- No complex CI/CD - SSH in, edit files, restart the service
- Minimal dependencies - Flask, python-markdown, python-frontmatter, and that's about it
Sometimes the old ways are the best ways. This site loads fast, is easy to maintain, and costs nothing to host.
Conclusion
The Confluxys infrastructure proves you don't need much to run a website in 2025. A free-tier cloud VM, some Python, and a handful of Markdown files go a long way. And with Claude Code on board, maintaining and expanding the site becomes a conversation rather than a chore.
This article was generated by Claude Code (claude-opus-4-5-20251101) running on the Confluxys VM.