Fell St Data Center
The Fell St Data Center consists of a home router forwarding all inbound HTTP, HTTPS, and SSH traffic (ports 80, 443, and 22) directly to a reverse proxy server named maestro04. Maestro04 handles public exposure of internal services and performs routing using Nginx.
Internal machines include:
- Mac mini (10.0.0.40) — Hosts applications such as an HTTP service running on port 8000 and provides SSH access. Remote Login is enabled, and the device is directly reachable on port 22 and 8000 from within the LAN.
- Ubuntu VM “fell-st-langflow” (10.0.0.63) — Accessible via SSH and used for additional hosted applications or development services.
Remote access is achieved by SSH tunneling through maestro04. Maestro04 serves as the single public entry point, proxying traffic to the internal machines based on ports or hostnames (e.g., macmini.the404api.dashanddata.com for the Mac mini's port 8000 service). This setup centralizes exposure of LAN-hosted services while keeping the internal network private.
alias ssh_tunnel_Maestro04_to_fell-st-langflow_9001="ssh -L 9001:10.0.0.63:22 nick@24.130.60.53 -p 22"
alias ssh_tunnel_Maestro04_to_macmini_9002="ssh -L 9002:10.0.0.40:22 nick@24.130.60.53 -p 22"
Then
alias ssh_localhost_9001="ssh nick@localhost -p 9001"
alias ssh_localhost_9002="ssh nick@localhost -p 9002"
Rochester Data Center
The "Rochester Data Center" or the RDC is home to many VM's stored on my brother's server. It has the reverse proxy server called maestro03 that is exposed to the public internet using Nginx. Like all my VM's it is using Ubuntu. But this version is 20.04 LTS.
Behind the maestro03 server are many VM's. Some of them are running Ubuntu 20.04 LTS and some are running Ubuntu 24.04 LTS. There is Avatar04, nn10prod, and nn10dev. Running Ubuntu. I access these using a SSH tunnel through maestro03. For example my .zshrc file has the following aliases:
alias ssh_tunnel_Maestro_to_Avatar04_9000="ssh -L 9000:192.168.100.174:22 nick@<public_ip_address> -p 22"
alias ssh_tunnel_Maestro_to_nn09dev_9007="ssh -L 9007:192.168.100.167:22 nick@<public_ip_address> -p 22"
Then
alias ssh_localhost_9000="ssh nick@localhost -p 9000"
alias ssh_localhost_9007="ssh nick@localhost -p 9007"
Production and PM2 setup
On the Ubuntu servers I use pm2 to manage the applications. I use a ecosystem.config.js file. Here is an example of one that manages node.js and Python applications.:
module.exports = {
apps: [
{
name: "The404-API",
script: "dist/server.js",
cwd: "/home/nick/applications/The404-API/",
log_date_format: "YYYY-MM-DD HH:mm Z",
env: {
NODE_ENV: "production",
PORT: 8000, // The port the app will listen on
},
},
{
name: "NewsNexus10Portal",
script: "npm",
args: "start",
cwd: "/home/nick/applications/NewsNexus10Portal/",
log_date_format: "YYYY-MM-DD HH:mm Z",
env: {
NODE_ENV: "production",
PORT: 8002, // The port the app will listen on
},
},
{
name: "NewsNexusPythonQueuer01",
script: "/home/nick/environments/news_nexus/bin/gunicorn",
args: "-w 3 -b 0.0.0.0:8003 --timeout 600 'src.app:app'",
cwd: "/home/nick/applications/NewsNexusPythonQueuer01/",
interpreter: "none", // direct python path from venv
env: {
PORT: 8003, // The port the app will listen on
},
},
{
name: "Fluxion00API",
script: "/home/nick/environments/fluxion/bin/uvicorn",
args: "src.api.app:app --host 0.0.0.0 --port 8005 --workers 3",
cwd: "/home/nick/applications/Fluxion00API/",
interpreter: "/home/nick/environments/fluxion/bin/python3",
env: {
PORT: 8005, // The port the app will listen on
NAME_APP: "Fluxion00API",
JWT_SECRET:
"SECRET",
PATH_TO_DATABASE: "/home/nick/databases/NewsNexus10/",
NAME_DB: "newsnexus10.db",
PATH_TO_PYTHON_VENV: "/home/nick/environments/fluxion",
PATH_TO_DOCUMENTS:
"/home/nick/project_resources/Fluxion00API/docs_for_agent",
URL_BASE_OLLAMA: "https://fell-st-ollama.dashanddata.com",
KEY_OLLAMA: "NICK_SECRET_KEY",
URL_BASE_OPENAI: "https://api.openai.com/v1",
KEY_OPENAI:
"SECRET",
},
}
],
};