Infrastructure · Systems Administration
Home Server and Infrastructure
Managed Linux infrastructure for deploying web applications and managing services, networks, containers, security, and automated maintenance tasks.
The project
Linux server used as real-world infrastructure for deploying and continuously running web applications and services. The environment centralizes Python applications, web servers, databases, containers, network services, remote access, artificial intelligence tools, and automated maintenance tasks.
End-to-end infrastructure administration, including system installation and configuration, application deployment, service management, network configuration, security, remote access, containers, databases, task automation, backups, and environment maintenance.
Architecture
Debian Linux infrastructure integrating Nginx as a web server and reverse proxy, Gunicorn for running Python applications, PostgreSQL as a database service, systemd for service management, and Docker and Docker Compose for running containerized applications and tools. Recurring maintenance tasks are automated using cron.
Security
Infrastructure protected by multiple layers of security. UFW controls network traffic through specific rules, while Fail2ban monitors protected services and automatically blocks certain malicious access patterns or repeated authentication attempts. SSH access is restricted to trusted networks, and remote access is provided through WireGuard. Nginx also incorporates specific security settings and traffic controls for published applications.
Firewall
UFW used as the server's primary firewall, with specific rules to control incoming traffic and restrict access to services according to their source and requirements.
Fail2ban
Fail2ban configured to monitor protected services, detect unwanted access patterns, and automatically block certain repeated authentication attempts or suspicious activity.
Nginx Security
Nginx configured as the entry point and reverse proxy for web applications, incorporating security measures, access restrictions, and specific settings to reduce the exposure of published services.
Administration
Linux system administration through the terminal and systemd services, including process management, service configuration, system health monitoring, maintenance, and infrastructure troubleshooting.
Automation
Automation of recurring tasks using cron, including scheduled backups and automatic updates to the dynamic IP address used to maintain remote connectivity.
Backups
Automated backup system using scheduled tasks to maintain periodic copies of important infrastructure data and services.
Dynamic IP and DDNS
Automatic public IP address updates through a scheduled task, keeping the information required for remote access and services associated with the home Internet connection up to date.
Services
Networking and connectivity
Local network configuration and remote access using WireGuard. The server has a private local network and a separate VPN for remote access. Nginx acts as the entry point for web applications, while internal services remain restricted to the networks or interfaces they require.
Remote Access
Remote access through WireGuard, providing a private VPN for server administration and access to internal services without directly exposing administrative services to the Internet.
Port Forwarding
Router configuration to expose only the services required to reach the server. Web traffic is routed through Nginx and remote access through WireGuard, keeping administrative services from being directly exposed to the Internet.
Technologies
Highlights
- Linux server administration
- Deployment of real-world web applications
- Nginx and Gunicorn configuration
- Service management using systemd
- PostgreSQL administration
- Docker and Docker Compose containers
- Firewall configuration using UFW
- Automated protection using Fail2ban
- Nginx security configuration
- Control of services exposed to the Internet
- Port forwarding configuration
- Remote access using WireGuard
- Internal network and service management
- Task automation using cron
- Scheduled backups
- Automatic dynamic IP updates
- DDNS using Cloudflare
- Local execution of artificial intelligence tools
- Infrastructure used for real-world applications
Deployment
Web applications run through Gunicorn and are published through Nginx as the web server and reverse proxy. Persistent services are managed using systemd, while applications and tools that require containerization run through Docker Compose. Recurring maintenance tasks, backups, and dynamic IP updates are executed automatically using cron.