Run Eliza on a Digital Ocean Droplet
Warning: These provisioning scripts are in an early alpha, works-for-me state. They need peer review before safely using in production.
Create a new Digital Ocean droplet (tested on the cheapest dedicated CPU they do).
Make sure to add an ssh key to the droplet via the UI and choose the LTS version of Ubuntu (24.04).
When the droplet is ready, you can ssh into it as root.
# become root (this is the only time you'll be doing this)
ssh root@your-droplet-ip -i ~/.ssh/your-private-key
# clone this repo
git clone https://github.com/bealers/eliza-remote.git
cd eliza-remote && chmod +x install.sh
# run the install script (this will take a while)
# edit this first to set your own admin username
./install.sh
Open a NEW terminal
ssh shrike@your-droplet-ip -i ~/.ssh/your-private-key
If that works you can close the root terminal session, you will always log in as the maintenance user from now on.
From your new terminal session, you can now configure Eliza.
Configure .env
sudo vi /opt/eliza/.env
At minimum you probably want to set OPENAI_API_KEY
and ANTHROPIC_API_KEY
(Re)start service
sudo systemctl restart eliza
Test
sudo eliza-cli
.env
: Main configurationcharacters/default.character.json
: Active character/var/log/eliza/
: Log directoryeliza.log
: Application logseliza-error.log
: Error logsinstall.log
: Installation logs (can be deleted)
sudo systemctl {start|stop|restart|status} eliza
sudo journalctl -u eliza -f
sudo -i -u eliza
cd /opt/eliza
git pull
git checkout $(git describe --tags --abbrev=0)
pnpm install
exit
sudo systemctl restart eliza
sudo -i -u eliza
cd /opt/eliza
ln -sf characters/trump.character.json characters/default.character.json
exit
sudo systemctl restart eliza
- User setup (maintenance and service user)
- All app dependencies (NVM, Node, pnpm)
- Eliza build with workspace support
- Basic security hardening
- Log rotation and management
- CLI interface for testing
- HTTP API (port 3000, firewalled by default)
- Test character switching via symlinks
- SSL support
- Multiple characters support
Eliza provides two ways to interact:
- Runs as a system service
- RESTful API endpoints
- Suitable for web interfaces/integrations
- Managed via systemd
- External access blocked by default
- Run with:
eliza-cli
- Note: This will temporarily stop the API service
- Type 'exit' to quit and restart the service
- may delete
Feedback welcome! If people find this useful I have 1000 things I could do to improve it.
PRs particularly welcome around opsec.
MIT License
H/T to HowieDuhzi for the WSL install script that inspired this fork.