Jump to content

VPS

From Archive

VPS Documentation

Self-hosted services and applications running on the ejfvps infrastructure

Applications


Architecture

Domain Strategy

  • ejfox.com - Main personal brand and API endpoints
  • ejfox.tools - Development tools and utilities subdomain
  • *.tools.ejfox.com - Individual tool subdomains for organized access, powered by smallweb
  • archive.ejfox.com - Knowledge management and documentation
  • room302.studio - Studio work

Port Mapping

Service Internal Port Public URL Purpose
Main Website 3013 ejfox.com Personal site & blog
Personal APIs 3013 ejfox.com/api/* Self-quantification endpoints
MediaWiki 8437 archive.ejfox.com Knowledge base
ArchiveBox 4040 snap.ejfox.com Web archiving
Smallweb 7777 ejfox.tools Development platform
n8n 5678 n8n.tools.ejfox.com Workflow automation
Datasette 8002 datasette.tools.ejfox.com Data exploration
Capabilities 9991 capabilities.tools.ejfox.com Skills tracking
Grafana 3333 grafana.tools.ejfox.com Metrics dashboards
Loki 3100 loki.tools.ejfox.com Log aggregation
Umami 3900 umami.tools.ejfox.com Web analytics
Uptime Kuma 54321 status.tools.ejfox.com Uptime monitoring
Room302 3012 room302.studio Creative projects


System Overview

Host System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-37-cloud-amd64
Hostname: ejfvps
Architecture: x86_64
CPU: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz (2 cores)
Memory: 3.8GB RAM
Storage:

  • Root: 7.8GB (/dev/vda1)
  • Data: 20GB (/dev/vdb1)
  • Data2: 49GB (/dev/vdc)

Core Infrastructure Services

Reverse Proxy & SSL

  • Caddy - Modern web server with automatic HTTPS
    • Port: 80/443
    • Config: /etc/caddy/Caddyfile
    • Features: Automatic SSL certificates, HTTP/2, reverse proxy

Container Orchestration

  • Docker Engine - Container runtime
  • Docker Compose - Multi-container application definitions
  • Containerd - Low-level container runtime

System Monitoring

  • Cloudflared - Cloudflare tunnel service
  • Fail2ban - Intrusion prevention system
  • Monit - System monitoring daemon

Application Stack

Analytics & Monitoring

Umami Analytics

Primary Instance:

  • Image: ghcr.io/umami-software/umami:postgresql-latest

Grafana Monitoring Stack

  • Grafana - Visualization dashboard
    • Image: grafana/grafana:latest
    • Plugins: ClickHouse, GitHub, Loki Explorer, Pyroscope, JSON datasource
  • Loki - Log aggregation system
    • Image: grafana/loki:latest

Uptime Monitoring

  • Uptime Kuma - Self-hosted monitoring tool

Content Management

MediaWiki

  • Image: mediawiki:latest
  • Port: 8437 → 80
  • Database: SQLite (multiple databases)
  • Extensions: AWS S3 integration
  • Skin: Citizen theme
  • Volumes:
    • Data: /home/debian/mediawiki/data
    • Config: /home/debian/mediawiki/LocalSettings.php

ArchiveBox

  • Image: archivebox/archivebox:latest
  • Features: Web archiving, full-text search via Sonic
  • Components:
    • Main archiver
    • Background scheduler (ofelia-based)
    • Sonic search backend
    • noVNC remote browser control

Development & Automation

Smallweb

  • Image: ghcr.io/pomdtr/smallweb:latest
  • Ports: 7777, 2222
  • Purpose: Lightweight web app hosting platform
  • Projects: Multiple TypeScript/Deno applications including:
    • Health dashboard and webhooks
    • GitHub integrations
    • Location tracking
    • Screenshot generation
    • Weather apps
    • Mastodon integration

n8n Workflow Automation

  • Image: docker.n8n.io/n8nio/n8n

Retroscope

  • Custom Application - retroscope
  • Scheduler: mcuadros/ofelia:latest
  • Status: Healthy, with background job scheduling

Personal Websites

ejfox.com

  • Custom Build - ejfoxcom_ejfox
  • Port: 3013 → 3013
  • Size: 1.84GB image
  • Status: Production website

room302.studio

  • Custom Build - website_room302
  • Port: 3012 → 3012
  • Size: 1.82GB image
  • Status: Secondary website

Network Configuration

Backup Strategy

  • MediaWiki has backup/restore scripts
  • Database files stored in persistent volumes
  • Configuration files version controlled

Process Management

PM2

  • PM2 modules: Auto-pull, log rotation
  • Stopped processes: Discord bot, capabilities service
  • Log management: Automated log rotation