Web Server: Difference between revisions

From Wreckroom
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= Synology Site Management =
= Synology Site Management =
Both sites are hosted on '''mainsqueeze''' (Synology) behind NGINX Reverse Proxy, served over 443.
Both sites are hosted on '''mainsqueeze''' (Synology) behind NGINX Reverse Proxy, served over 443.
{| class="wikitable"
{| class="wikitable"
! Site !! Local Port !! Directory
! Site !! Local Port !! Directory
Line 10: Line 8:
| [https://justinbjur.com justinbjur.com] || <code>localhost:3001</code> || <code>/volume2/justinbjur.com/justinbjur.com</code>
| [https://justinbjur.com justinbjur.com] || <code>localhost:3001</code> || <code>/volume2/justinbjur.com/justinbjur.com</code>
|}
|}
== Updating Site Content ==
== Updating Site Content ==
# Make changes locally and commit to GitHub
# Make changes locally and commit to GitHub
Line 18: Line 15:
## <code>git pull</code>
## <code>git pull</code>
# Restart pm2: <code>sudo pm2 restart wreckroom.nyc</code> (or justinbjur.com)
# Restart pm2: <code>sudo pm2 restart wreckroom.nyc</code> (or justinbjur.com)
#or git pull && sudo npm run build && sudo pm2 restart justinbjur.com
#or git pull && sudo npm run build && sudo pm2 restart justinbjur.com
== PM2 ==
== PM2 ==
'''PM2''' is a process manager that keeps both Next.js apps alive on the server.
'''PM2''' is a process manager that keeps both Next.js apps alive on the server.
=== Current Processes ===
=== Current Processes ===
{| class="wikitable"
{| class="wikitable"
Line 32: Line 26:
| <code>justinbjur.com</code> || <code>npm run start</code>
| <code>justinbjur.com</code> || <code>npm run start</code>
|}
|}
=== Startup Persistence ===
DSM on mainsqueeze uses systemd. PM2 startup has been configured and the service is enabled:
sudo pm2 startup        # already run; installs pm2-root.service
sudo pm2 save          # saves current process list to ~/.pm2/dump.pm2
On reboot, systemd will automatically call <code>pm2 resurrect</code> via <code>pm2-root.service</code>.
Run <code>sudo pm2 save</code> any time processes are added, removed, or renamed.
To verify the service:
sudo systemctl status pm2-root


=== After a Synology Reboot ===
=== After a Synology Reboot ===
PM2 should auto-resume if <code>pm2 save</code> was run. If not, restart manually:
PM2 should auto-resume via systemd. If processes are not running after a reboot:
# <code>sudo systemctl start pm2-root</code>
# Verify with <code>sudo pm2 list</code>
 
If that fails, restart manually:
# <code>cd /volume2/wreckroom.nyc/wreckroom.nyc</code>
# <code>cd /volume2/wreckroom.nyc/wreckroom.nyc</code>
# <code>sudo pm2 start npm --name "wreckroom.nyc" -- run start</code>
# <code>sudo pm2 start npm --name "wreckroom.nyc" -- run start</code>
Line 40: Line 48:
# <code>sudo pm2 start npm --name "justinbjur.com" -- run start</code>
# <code>sudo pm2 start npm --name "justinbjur.com" -- run start</code>
# <code>sudo pm2 save</code>
# <code>sudo pm2 save</code>
=== Troubleshooting ===
=== Troubleshooting ===
If a site is down and pm2 shows an error, delete and restart that process:
If a site is down and pm2 shows an error, delete and restart that process:
Line 46: Line 53:
# <code>sudo pm2 start npm --name "wreckroom.nyc" -- run start</code>
# <code>sudo pm2 start npm --name "wreckroom.nyc" -- run start</code>
# <code>sudo pm2 save</code>
# <code>sudo pm2 save</code>
== Certificates ==
== Certificates ==
If you modify a certificate's FQDN, you '''must''' also update the reverse proxy entry.
If you modify a certificate's FQDN, you '''must''' also update the reverse proxy entry.
'''Control Panel → Login Portal → Advanced → Reverse Proxy'''
'''Control Panel → Login Portal → Advanced → Reverse Proxy'''
Update the hostname there — without this step the site will not resolve correctly even after migrating the cert. This has cost half a day before, don't skip it.
Update the hostname there — without this step the site will not resolve correctly even after migrating the cert. This has cost half a day before, don't skip it.

Revision as of 01:45, 19 May 2026

Synology Site Management

Both sites are hosted on mainsqueeze (Synology) behind NGINX Reverse Proxy, served over 443.

Site Local Port Directory
wreckroom.nyc localhost:3000 /volume2/wreckroom.nyc/wreckroom.nyc
justinbjur.com localhost:3001 /volume2/justinbjur.com/justinbjur.com

Updating Site Content

  1. Make changes locally and commit to GitHub
  2. SSH into mainsqueeze: ssh guernica@wreckroom.nyc
  3. Navigate to the site and pull:
    1. cd /volume2/wreckroom.nyc/wreckroom.nyc (or justinbjur.com)
    2. git pull
  4. Restart pm2: sudo pm2 restart wreckroom.nyc (or justinbjur.com)
  5. or git pull && sudo npm run build && sudo pm2 restart justinbjur.com

PM2

PM2 is a process manager that keeps both Next.js apps alive on the server.

Current Processes

Name Command
wreckroom.nyc npm run start
justinbjur.com npm run start

Startup Persistence

DSM on mainsqueeze uses systemd. PM2 startup has been configured and the service is enabled:

sudo pm2 startup        # already run; installs pm2-root.service
sudo pm2 save           # saves current process list to ~/.pm2/dump.pm2

On reboot, systemd will automatically call pm2 resurrect via pm2-root.service.

Run sudo pm2 save any time processes are added, removed, or renamed.

To verify the service:

sudo systemctl status pm2-root

After a Synology Reboot

PM2 should auto-resume via systemd. If processes are not running after a reboot:

  1. sudo systemctl start pm2-root
  2. Verify with sudo pm2 list

If that fails, restart manually:

  1. cd /volume2/wreckroom.nyc/wreckroom.nyc
  2. sudo pm2 start npm --name "wreckroom.nyc" -- run start
  3. cd /volume2/justinbjur.com/justinbjur.com
  4. sudo pm2 start npm --name "justinbjur.com" -- run start
  5. sudo pm2 save

Troubleshooting

If a site is down and pm2 shows an error, delete and restart that process:

  1. sudo pm2 delete wreckroom.nyc
  2. sudo pm2 start npm --name "wreckroom.nyc" -- run start
  3. sudo pm2 save

Certificates

If you modify a certificate's FQDN, you must also update the reverse proxy entry. Control Panel → Login Portal → Advanced → Reverse Proxy Update the hostname there — without this step the site will not resolve correctly even after migrating the cert. This has cost half a day before, don't skip it.