dev.profullstack.com

Profullstack dev box — staff links and user pages.

Company

Comms — AgentBBS

Our comms network runs over SSH. First time, connect as join — your SSH key becomes your account and you get a username, a Linux pod and a homepage. After that, sign in as your BBS name.

ssh join@bbs.profullstack.com          # first time: registers your key
ssh <your-bbs-name>@bbs.profullstack.com   # sign in -- arcade, chat, news, mail, pod
ssh bbs@bbs.profullstack.com           # look around as a guest

Once signed in the hub reaches everything without separate logins. Handy direct entrances:

ssh mail@bbs.profullstack.com          # your BBS mailbox
ssh irc@bbs.profullstack.com           # members' IRC from your terminal
ssh -t news@bbs.profullstack.com       # Usenet-style newsreader
ssh pod@bbs.profullstack.com           # your Linux pod

People

moshcode

Already installed for every account on this box — it is the wrapper that installs and drives the coding agents, so you do not set them up yourself. Run moshcode with no arguments for the TUI.

moshcode                      # TUI shell, then /agents <engine>
moshcode engines              # what is installed: claude, codex, gemini, opencode, aider
moshcode install claude       # add an engine
moshcode claude               # launch one directly
moshcode agents claude        # autonomous mode -- auto-approves, use in trusted dirs only

It also fronts the workflow CLIs. Each keeps its own auth, so signing in to one signs you in to nothing else:

moshcode tools                # gh, supabase, railway, doppler, doctl, ugig, coinpay, …
moshcode gh pr list           # passthrough -- same as running gh yourself
moshcode upgrade              # update moshcode and everything it installed

Two separate logins, and this trips everyone up. Both need --device here: there is no browser on this box, so the loopback flow has nothing to open. You approve the code from your laptop.

moshcode login --device       # app.moshcode.sh -- lets notify()/ask() reach you
moshcode whoami

moshcode secrets login --device   # LogicSRC -- team vaults. NOT the same account.
moshcode secrets whoami

Team secrets, once secrets login has been done — <team> and <vault> are your own names, run teams list and teams vaults to see them:

moshcode secrets teams list
moshcode secrets teams vaults <team>
moshcode secrets teams pull <team> <vault>   # decrypt into a local .env
moshcode secrets teams push <team> <vault>   # encrypt a local .env back up

Your dev apps

Anything in ~/apps/<name> is published at https://<name>.<you>.dev.profullstack.com with TLS. New apps go live within a minute — no root, no restart, no ticket.

# a static site
mkdir -p ~/apps/blog/public && echo hi > ~/apps/blog/public/index.html

# a running app: declare the port, then listen on it
mkdir -p ~/apps/api && echo 3000 > ~/apps/api/.port
node server.js            # bind 127.0.0.1:3000, not 0.0.0.0

Websockets and HMR are proxied through, so vite/next dev servers work as-is. Bind to 127.0.0.1 — the firewall blocks the port directly and nginx is what terminates TLS for you.

Stack

Access

Straight away, no setup:

ssh <your-username>@dev.profullstack.com
mosh <your-username>@dev.profullstack.com   # survives a dropped connection

Or add this to ~/.ssh/config on your laptop and it becomes just ssh dev:

Host dev
    HostName dev.profullstack.com
    User <your-username>
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Send your public key (~/.ssh/id_ed25519.pub) to get added.

Tailscale is optional and changes nothing today — the ssh above already works from anywhere. It only starts to matter if public ssh is ever closed. You cannot add your laptop from a shell on this box. Enrolling a device is something that device does, so it happens on the laptop or the phone; nothing you type here reaches it. Do not reach for sudo either — tailscale up run here re-authenticates this box, not your laptop, and takes it out from under everyone else logged in. Ask for a share link instead:

# on your laptop or phone -- not here
# 1. install tailscale, sign in, make your own (free) tailnet.
#    that is where your devices get added: to yours, not ours.
# 2. open the share link you were sent and accept it. this box
#    then shows up in your tailnet, and nothing else of ours does.
ssh <your-username>@dev.<tailnet>.ts.net   # exact name is in the share link