- A VPS with Ubuntu 24.04 with root access and a domain like
cms.example.com.
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();-
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.
- The SSH URL of the repository. Example:
-
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.comto run LumeCMS and preview the changes, andexample.comfor 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.