server-ovh-prod-01-main/profile.yaml

157 lines
4.3 KiB
YAML

# systems-prod-01 Server Profile
# Last Updated: 2025-09-18
# Updated By: jared
server:
name: systems-prod-01
hostname: systems-prod-01.vps.ovh.us
provider: OVHcloud
location: Virginia (US-EAST-VA) - USA
region: os-us-east-va-2
ip: 15.204.247.153
ipv6: 2604:2dc0:101:200::c3
gateway_ipv6: 2604:2dc0:101:200::1
created: 2025-09-18
status: Active
purpose: Multi-service hosting migration from DigitalOcean for cost optimization
specs:
model: VPS-3
cpu: 8 vCores
ram: 24 GB
storage: 200 GB
bandwidth: TBD
os: Ubuntu 25.04
kernel: 6.14.0-29-generic
arch: x86_64
access:
ssh_user: jared
ssh_port: 22
ssh_key: ~/.ssh/id_rsa.pub (jared@x1carbon)
root_login: disabled
password_auth: disabled
auth_method: ssh_key_only
sudo: full_access
jump_host: N/A
security:
firewall: ufw
firewall_status: active
firewall_rules:
- "22/tcp (OpenSSH) ALLOW IN Anywhere"
- "80/tcp ALLOW IN Anywhere"
- "443/tcp ALLOW IN Anywhere"
- "default: deny (incoming), allow (outgoing)"
selinux: N/A
fail2ban: not_configured
ids: not_configured
auto_updates: enabled (unattended-upgrades)
software:
docker:
version: 28.4.0
compose_version: 2.39.3
user_in_group: jared
installed_from: official_convenience_script
daemon_config: production_ready
networks:
- web (172.20.0.0/16)
- internal (172.21.0.0/16)
runtime:
- traefik:v3.0 (reverse proxy)
- ctop (container monitoring)
- apache2-utils (for htpasswd)
system_packages:
essential_installed: curl, git, vim, htop, iftop, iotop, ncdu, tree, jq, zip, unzip, build-essential, rsync, fail2ban
pending_updates: 3 (held due to phasing)
status: completed
services:
- name: traefik
type: reverse_proxy
version: v3.0
status: running
ports: [80, 443, 8080]
ssl: letsencrypt
dashboard: https://traefik.systems-prod-01.vps.ovh.us
directory: /home/jared/services/traefik
- name: test-whoami
type: test_service
status: running
purpose: ssl_verification
monitoring:
status: basic_configured
tools:
- ctop (container monitoring)
- htop (system monitoring)
- health-check.sh (system health)
- log-summary.sh (log analysis)
logs: local_with_rotation
directory: /home/jared/services/monitoring
alerts: none
backups:
status: not_configured
strategy: TBD
frequency: TBD
retention: TBD
location: TBD
tested: N/A
networking:
vpc: N/A
subnet: N/A
private_ip: N/A
dns: TBD
domain: TBD
cdn: N/A
storage:
volumes:
- mount: /
size: 200 GB
type: SSD
purpose: System and application storage
maintenance:
auto_updates: configured (unattended-upgrades)
last_system_update: 2025-09-18
last_docker_update: N/A
reboot_required: no
maintenance_window: TBD
swap_configured: yes (4GB active)
timezone: America/New_York
ntp_sync: active (chrony)
log_rotation: configured
cost:
monthly: TBD
billing: monthly
credits_used: N/A
notes:
- Server provisioned for cost optimization migration from DigitalOcean
- Significantly larger specs (8 vCores, 24GB RAM) vs current 1 vCore, 2GB setup
- Will consolidate multiple DigitalOcean services onto single server
- Next payment date: 2025-10-18
- Automatic renewal enabled
- Phase 1.1 completed: Custom user setup, SSH keys, ubuntu user removed
- Phase 1.2 completed: Security hardening (SSH, firewall, auto-updates)
- Phase 1.3 completed: System preparation (packages, timezone, swap, tools)
- Phase 1.4 completed: Final validation of all Phase 1 tasks
- PHASE 1 COMPLETE: Ready for Phase 2 Docker environment setup
- Phase 2.1 completed: Docker v28.4.0 and Compose v2.39.3 installed
- Phase 2.2 completed: Service directory structure at /home/jared/services/
- Phase 2.3 completed: Traefik v3.0 reverse proxy with SSL configured
- Phase 2.4 completed: Basic monitoring tools and scripts installed
- PHASE 2 COMPLETE: Docker environment ready for service deployment
- Hostname mismatch: shows "vps-5d79b132" instead of "systems-prod-01"
- Passwordless sudo configured for automation
- 4GB swap file active with optimal swappiness setting
- Traefik dashboard: admin / dH1CtZuVLBUMig7P
- Directory structure: /home/jared/services/{traefik,web,databases,automation,monitoring,shared,templates}