generated from autonomic-cooperative/astro-payload-template
Merge branch 'main' into t-work
This commit is contained in:
commit
9629c93ceb
54
.drone.yml
54
.drone.yml
@ -4,42 +4,45 @@ name: publish pipeline
|
|||||||
steps:
|
steps:
|
||||||
- name: publish astro container
|
- name: publish astro container
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings: &docker-build-settings
|
||||||
username: 3wordchant
|
username: 3wordchant
|
||||||
password:
|
password:
|
||||||
from_secret: git_autonomic_zone_token_3wc
|
from_secret: git_autonomic_zone_token_3wc
|
||||||
# NOTE: edit this if you want your image called something else
|
# NOTE: edit this if you want your image called something else
|
||||||
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-astro
|
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-astro
|
||||||
auto_tag: true
|
auto_tag: true
|
||||||
registry: git.autonomic.zone
|
registry: git.autonomic.zone
|
||||||
context: astro
|
context: astro
|
||||||
dockerfile: astro/Dockerfile
|
dockerfile: astro/Dockerfile
|
||||||
|
trigger: &exclude-event-custom
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- custom
|
||||||
|
|
||||||
- name: publish payload dev container
|
- name: publish payload dev container
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings: &payload-build-settings
|
||||||
username: 3wordchant
|
<<: *docker-build-settings
|
||||||
password:
|
|
||||||
from_secret: git_autonomic_zone_token_3wc
|
|
||||||
# NOTE: edit this if you want your image called something else
|
# NOTE: edit this if you want your image called something else
|
||||||
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-payload-dev
|
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-payload-dev
|
||||||
auto_tag: true
|
|
||||||
registry: git.autonomic.zone
|
|
||||||
context: payload
|
context: payload
|
||||||
dockerfile: payload/Dockerfile
|
dockerfile: payload/Dockerfile
|
||||||
target: dev
|
target: dev
|
||||||
|
trigger:
|
||||||
|
<< *exclude-event-custom
|
||||||
|
|
||||||
- name: publish payload prod container
|
- name: publish payload prod container
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings:
|
||||||
|
<<: *payload-build-settings
|
||||||
username: 3wordchant
|
username: 3wordchant
|
||||||
password:
|
|
||||||
from_secret: git_autonomic_zone_token_3wc
|
|
||||||
# NOTE: edit this if you want your image called something else
|
|
||||||
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-payload
|
repo: git.autonomic.zone/autonomic-cooperative/astro-payload-test-payload
|
||||||
auto_tag: true
|
|
||||||
registry: git.autonomic.zone
|
|
||||||
context: payload
|
|
||||||
dockerfile: payload/Dockerfile
|
|
||||||
target: prod
|
target: prod
|
||||||
|
trigger:
|
||||||
|
<< *exclude-event-custom
|
||||||
|
|
||||||
- name: deploy stack
|
- name: deploy stack
|
||||||
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
|
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
|
||||||
settings:
|
settings:
|
||||||
@ -60,17 +63,9 @@ steps:
|
|||||||
PAYLOAD_URL: "https://admin.paystro.swarm-demo.autonomic.zone"
|
PAYLOAD_URL: "https://admin.paystro.swarm-demo.autonomic.zone"
|
||||||
depends_on:
|
depends_on:
|
||||||
- publish payload prod container
|
- publish payload prod container
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
<< *exclude-event-custom
|
||||||
- main
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- custom
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: build astro
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build astro content
|
- name: build astro content
|
||||||
image: git.autonomic.zone/autonomic-cooperative/astro-payload-test-astro:latest
|
image: git.autonomic.zone/autonomic-cooperative/astro-payload-test-astro:latest
|
||||||
environment:
|
environment:
|
||||||
@ -79,6 +74,9 @@ steps:
|
|||||||
- cd astro
|
- cd astro
|
||||||
- mv /base/node_modules .
|
- mv /base/node_modules .
|
||||||
- yarn build
|
- yarn build
|
||||||
|
depends_on:
|
||||||
|
- deploy stack
|
||||||
|
|
||||||
- name: copy built content to stack
|
- name: copy built content to stack
|
||||||
image: git.coopcloud.tech/coop-cloud/docker-cp-deploy:latest
|
image: git.coopcloud.tech/coop-cloud/docker-cp-deploy:latest
|
||||||
settings:
|
settings:
|
||||||
@ -90,7 +88,5 @@ steps:
|
|||||||
dest: /usr/share/nginx/html/
|
dest: /usr/share/nginx/html/
|
||||||
deploy_key:
|
deploy_key:
|
||||||
from_secret: drone_ssh_swarm-demo.autonomic.zone
|
from_secret: drone_ssh_swarm-demo.autonomic.zone
|
||||||
|
depends_on:
|
||||||
trigger:
|
- build astro content
|
||||||
event:
|
|
||||||
- custom
|
|
||||||
|
44
README.md
44
README.md
@ -1,4 +1,16 @@
|
|||||||
# How to use this template
|
# 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.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
Paystro is a fork of [Astroad](https://github.com/mooxl/astroad).
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## How to use this template
|
||||||
|
|
||||||
1. Create a new Gitea repository based on this template repo (choose at least
|
1. Create a new Gitea repository based on this template repo (choose at least
|
||||||
"git content")
|
"git content")
|
||||||
@ -11,24 +23,30 @@ To set up deployment:
|
|||||||
including adding an SSH key as an organisational secret for the organisation
|
including adding an SSH key as an organisational secret for the organisation
|
||||||
this project is in (see [Autonomic internal
|
this project is in (see [Autonomic internal
|
||||||
docs](https://docz.autonomic.zone/doc/setting-up-auto-deployment-using-drone-I4j2onjaKT))
|
docs](https://docz.autonomic.zone/doc/setting-up-auto-deployment-using-drone-I4j2onjaKT))
|
||||||
2. Edit `.drone.yml` to define the server to host on, and the
|
2. Edit `.drone.yml` to set variables:
|
||||||
`STACK_NAME` / `DOMAIN` of the deployed app.
|
- `HOST`: hostname or IP address of the server to deploy to (e.g.
|
||||||
3. Generate secrets (`openssl rand -hex 32` works well) for `PAYLOAD_SECRET` and
|
`vps.example.tld`)
|
||||||
|
- `DOMAIN`: domain name of the live site (e.g. `site.example.tld`)
|
||||||
|
- `STACK_NAME`: the Docker stack name, usually `$DOMAIN` with dots replaced
|
||||||
|
with underscores (e.g. `site_example_tld`)
|
||||||
|
- `DRONE_URL`: root URL for the Drone instance (e.g.
|
||||||
|
`https://drone.example.tld`)
|
||||||
|
3. Make sure that DNS records for `$DOMAIN` and `admin.$DOMAIN`, pointing to
|
||||||
|
`$HOST`, are defined.
|
||||||
|
4. Generate secrets (`openssl rand -hex 32` works well) for `PAYLOAD_SECRET` and
|
||||||
`MONGO_PASSWORD`. Insert the personal user token for a Drone bot user (e.g.
|
`MONGO_PASSWORD`. Insert the personal user token for a Drone bot user (e.g.
|
||||||
`autono-bot`) as `TOKEN`). For all of them, use something like `echo "foobar"
|
`autono-bot`) as `TOKEN`). For all of them, use something like `echo "foobar"
|
||||||
| docker secret create paystro_swarm-demo_autonomic_zone_token_v1 -`, where
|
| docker secret create paystro_swarm-demo_autonomic_zone_token_v1 -`, where
|
||||||
`paystro_swarm-demo_autonomic_zone` is the `STACK_NAME`.
|
`paystro_swarm-demo_autonomic_zone` is the `STACK_NAME`.
|
||||||
4. Activate the repo in Drone
|
5. 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.
|
# ${REPO_NAME}
|
||||||
|
|
||||||
Paystro is a fork of [Astroad](https://github.com/mooxl/astroad).
|
|
||||||
|
|
||||||
## Prerequisites
|
## 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).
|
Before getting started, make sure you have Docker installed (and, if your Docker doesn't include `docker compose`, the separate `docker-compose` tool).
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
@ -44,8 +62,4 @@ The `docker-compose.yml` file includes everything you need to run the containers
|
|||||||
|
|
||||||
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`.
|
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.
|
Whenever changes are made to Payload content on the live site, 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.
|
||||||
|
|
||||||
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.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user