cms-deploy

Deploy LumeCMS in a VPS

Requirements

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

  1. Log in from SSH and run:
    curl https://lumeland.github.io/cms-deploy/install.sh > install.sh && sh install.sh
    
  2. 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.
  3. 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.
  4. 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.