Deploy LumeCMS in a VPS
Requirements
- A VPS with Ubuntu 24.04 with root access and a domain like
cms.example.com.
LumeCMS configuration
Enable the authentication and GIT in the _cms.ts file:
// user and pass are environment variables, stored in an .env file
const user = Deno.env.get("CMS_USER") ?? "admin";
const pass = Deno.env.get("CMS_PASSWORD") ?? "";
cms.auth({
[user]: pass,
});
// Enable git to pull/push changes
cms.git();
Instructions
- Log in from SSH and run:
curl https://lumeland.github.io/cms-deploy/install.sh > install.sh && sh install.sh
- After updating and installing some packages, the script will ask you to add a
site. If you choose yes (Y) it will ask you for the following info:
- The SSH URL of the repository. Example:
git@github.com:user/repo.git.
- An email. It’s used for git commits, or to create the SSL certificate.
- The domain for the site:
cms.example.com.
- During the process, it will ask you to add a deploy key.
- Go to the GitHub respository / Settings / Deploy keys / Add deploy key.
- Paste the key printed in the terminal.
- Check “Allow write access”.
- Once the key is added, press Enter in the terminal to continue.
- Optionally, you can configure a domain to serve the production site (the
static sites). This requires a different domain from the admin site. For
example, you can have
cms.example.com to run LumeCMS and preview the
changes, and example.com for the final public site.
- Done! When the script is finished you should see your site and be able to
edit the pages (it might take a while the first time).
To add additional sites, run sh add-site.sh.