Closes autonomic-cooperative/astro-payload-template#6
2.7 KiB
How to use this template
- Create a new Gitea repository based on this template repo (choose at least "git content"
- Edit
.env.sample
to define the project name - Remove this notice (everything down to the
---
)
To set up deployment:
- Make sure the server you want to deploy to is set up for Drone access, including adding an SSH key as an organisational secret for the organisation this project is in (see Autonomic internal docs)
- Edit
.drone.yml
to define the server to host on, and theSTACK_NAME
/DOMAIN
of the deployed app. - Generate secrets (
openssl rand -hex 32
works well) forPAYLOAD_SECRET
andMONGO_PASSWORD
. Insert the personal user token for a Drone bot user (e.g.autono-bot
) asTOKEN
). For all of them, use something likeecho "foobar" | docker secret create paystro_swarm-demo_autonomic_zone_token_v1 -
, wherepaystro_swarm-demo_autonomic_zone
is theSTACK_NAME
. - Activate the repo in Drone
Paystro
Paystro is a pre-configured setup for Astro and Payloadcms, designed to make it easy for you to start building your website. With Paystro, you'll have a complete development environment that you can run locally using Docker. This setup simplifies the testing and development of your website before deploying it to a production environment.
Paystro is a fork of Astroad.
Prerequisites
Before getting started with Paystro, make sure you have Docker installed (and, if your Docker doesn't include docker compose
, the separate docker-compose
tool).
Configuration
Copy .env.sample
to .env
and edit as appropriate (e.g. to change the port for Payload).
Development
Launch local containers using yarn dev
or, if you don't have yarn installed, plain docker-compose up
/ docker compose up
.
The docker-compose.yml
file includes everything you need to run the containers. The containers use the environment variables declared in the .env
file, and mounted volumes to store data persistently even after the containers are stopped and started.
Deployment
Whenever the repository is updated, Drone builds new Docker images for Payload and Astro, and deploys a new Docker Swarm stack to the HOST
configured in .drone.yml
.
Unlike Astroad – where the "Astro" image is the built static site served with Nginx – Paystro's Astro image is a builder image.
In Paystro, the Docker stack just contains Payload and a generic Nginx container.
Whenever changes are made to Payload content, Drone uses the Astro builder image to regenerate the static site, and publish it to the Nginx container by copying it into the Docker volume.