-
-
Notifications
You must be signed in to change notification settings - Fork 4
feat(dargstack)!: migrate to v4 #245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
5e976d2
feat(dargstack)!: migrate to v4.0.0-beta.7
dargmuesli 79d3851
feat(postgraphile)!: use ecdsa key
dargmuesli ed69dad
Merge pull request #246 from maevsi/feat/jwt/ecdsa
dargmuesli 7c6a8e0
chore(vibetype): remove user
dargmuesli a9a4812
fix(docker): improve environment variable loading
dargmuesli 2647f21
chore(dargstack): reenable volume removal prompt
dargmuesli f75808b
chore: add setup script
dargmuesli 88c290c
docs: add agents, contributing, readme, security
dargmuesli 7eace8d
Merge pull request #247 from maevsi/chore/setup/add-script
dargmuesli 021d62c
fix(deps): specify container registry for postgraphile
dargmuesli ee6544f
chore(deps): pin actions/checkout action to 34e1148
renovate[bot] 9caf988
chore(deps): update all non-major dependencies
renovate[bot] 20948f3
chore(deps): update actions/checkout action to v6
renovate[bot] 0d246b7
Merge pull request #251 from maevsi/renovate/feat/dargstack/v4-action…
dargmuesli 8f19907
perf: configure service update configuration
dargmuesli 3a29d71
Merge pull request #253 from maevsi/perf/deployment/update-start-first
dargmuesli 8fe7fa0
chore(deps): update ghcr.io/maevsi/vibetype docker tag to v14
renovate[bot] b3231a0
chore(deps): update ghcr.io/maevsi/sqitch docker tag to v11
renovate[bot] 3795e6e
Merge pull request #254 from maevsi/renovate/feat/dargstack/v4-ghcr.i…
dargmuesli 0105c20
Merge pull request #255 from maevsi/renovate/feat/dargstack/v4-ghcr.i…
dargmuesli a218f29
fix(postgres): correct secret comments
dargmuesli 99c1ae4
chore(docker): remove compose version
dargmuesli 087099d
chore(deps): update
dargmuesli 7f8698e
Merge branch 'main' into feat/dargstack/v4
dargmuesli 2a2d31d
chore: work in review feedback
dargmuesli df175b6
feat(postgraphile): add sentry dsn
dargmuesli 08feff8
fix(jobber): correct secret name
dargmuesli 30be480
feat(stack): use `dargstack.development.git` label
dargmuesli c1ff502
refactor(stack): use stack directory helper
dargmuesli 6135e37
chore: remove secret templates
dargmuesli 1bb1a18
fix: correct secret templates
dargmuesli 3f61056
fix(minio): correct labels
dargmuesli bf3e620
feat(dargstack): upgrade configuration
dargmuesli 7909843
chore(vibetype): clean secret
dargmuesli 26fbc14
chore(deps): update dargstack to v15
dargmuesli 495ab35
chore: use stack parent directory alias
dargmuesli d4c50b6
chore: update docs
dargmuesli 7b00477
chore(dargstack): use own initialization
dargmuesli File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1 @@ | ||
| # These are supported funding model platforms | ||
|
|
||
| github: [dargmuesli] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] | ||
| patreon: # Replace with a single Patreon username | ||
| open_collective: # Replace with a single Open Collective username | ||
| ko_fi: # Replace with a single Ko-fi username | ||
| tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel | ||
| community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry | ||
| liberapay: # Replace with a single Liberapay username | ||
| issuehunt: # Replace with a single IssueHunt username | ||
| otechie: # Replace with a single Otechie username | ||
| custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] | ||
| github: [dargmuesli] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| --- | ||
| applyTo: '**' | ||
| --- | ||
| # Project Instructions | ||
|
|
||
| `stack` is the Docker Swarm configuration for [vibetype.app](https://vibetype.app/), an event community platform, managed with [dargstack](https://github.com/dargstack/dargstack/). | ||
|
|
||
| ## Documentation Map | ||
|
|
||
| **For understanding the stack structure and deployment:** | ||
| - [README.md](README.md): Project overview, quick start | ||
| - [artifacts/docs/README.md](artifacts/docs/README.md): Auto-generated service, secret and volume reference (do not edit manually) | ||
|
|
||
| **For contributing:** | ||
| - [CONTRIBUTING.md](CONTRIBUTING.md): Development setup, dargstack guidelines, code style, git workflow | ||
|
|
||
| ## Code Style | ||
|
|
||
| - Do not use abbreviations in naming, except where omitting them would look unnatural | ||
| - Use natural language in any non-code text instead of referring to code directly, e.g. "the database's password" instead of "the `postgres_password`", except when a code reference is needed | ||
| - Use backticks in any non-code text to refer to code, e.g. "`postgres`" instead of "postgres" | ||
| - Sort YAML keys lexicographically except where order is semantically significant | ||
| - Code formatting is done by the editor via `.editorconfig` | ||
|
|
||
| ## Git | ||
|
|
||
| - Work on branches other than the default branch | ||
| - Use this branch naming pattern: `<type>/<scope>/<description>` | ||
| - Git commit titles must follow the Conventional Commits specification and be lowercase only | ||
| - The commit scope should not be repeated in the commit description, e.g. `feat(postgres): add role` instead of `feat(postgres): add postgres role` | ||
| - Git commit scopes must be chosen as follows (ordered by priority): | ||
| 1. service name, e.g. `postgres`, `traefik`, `vibetype` | ||
| 2. simplified dependency name, e.g. `dargstack`, `docker` | ||
| 3. area, e.g. `secrets`, `volumes`, `certificates` | ||
| - Commit bodies are only to be filled in when necessary, e.g. to mention a resolved issue link | ||
|
|
||
| ## Docker / dargstack | ||
|
|
||
| - Each service lives under `src/development/<service>/compose.yaml` as a full Compose document and optionally `src/production/<service>/compose.yaml` as a delta-only override | ||
| - Lines annotated with `# dargstack:dev-only` are stripped from production compose | ||
| - Run `dargstack build <service>` after changing a service's source code to rebuild its development container image | ||
| - Run `dargstack validate` to check the stack configuration | ||
| - Run `dargstack document` to regenerate `artifacts/docs/README.md` (do not edit that file manually) | ||
| - Do not commit files from `artifacts/` unless they are tracked (e.g. `artifacts/docs/SERVICES_ADDITIONAL.md`) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,116 @@ | ||
| # Contributing to stack | ||
|
|
||
| Thank you for your interest in contributing! | ||
|
|
||
| The fullstack environment composes several services, among those are the following first-party: | ||
|
|
||
| | Repository | Required | Profile | Access | | ||
| |---|---|---|---| | ||
| | [maevsi/android](https://github.com/maevsi/android) | optional | — | public | | ||
| | [maevsi/ios](https://github.com/maevsi/ios) | optional | — | public | | ||
| | [maevsi/postgraphile](https://github.com/maevsi/postgraphile) | ✅ | `default` | public | | ||
| | [maevsi/reccoom](https://github.com/maevsi/reccoom) | optional | `recommendation` | private | | ||
| | [maevsi/sqitch](https://github.com/maevsi/sqitch) | ✅ | `default` | public | | ||
| | [maevsi/stack](https://github.com/maevsi/stack) | ✅ | — | public | | ||
| | [maevsi/vibetype](https://github.com/maevsi/vibetype) | ✅ | `default` | public | | ||
|
|
||
| ## Development Setup | ||
|
|
||
| There are two development modes: | ||
|
|
||
| | Mode | When to use | Setup | Where to start | | ||
| |---|---|---|---| | ||
| | **Frontend only** | Working on UI, i18n, or anything that doesn't require running backend services | Manual only | [Vibetype repository](https://github.com/maevsi/vibetype#development) | | ||
| | **Fullstack** | Working on backend services, the database, the API, or any cross-cutting concern | Automated or manual | This guide (continue reading) | | ||
|
|
||
| > 🪟 **Windows users:** Set up [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) first and continue inside the Linux subsystem. | ||
| > If you use VS Code, see [VS Code + WSL](https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-vscode). | ||
|
|
||
| ### Automated Setup | ||
|
|
||
| ```sh | ||
| dargstack init | ||
| ``` | ||
| <!-- TODO: add https://github.com/maevsi/stack.git parameter --> | ||
| ### Manual Setup | ||
|
|
||
| If you prefer to step through each action yourself: | ||
|
|
||
| 1. Install prerequisites | ||
|
|
||
| 1. [Git](https://git-scm.com/): version control | ||
| 2. [Docker](https://docs.docker.com/engine/install/): container runtime | ||
| 3. [dargstack](https://github.com/dargstack/dargstack#install): stack management CLI | ||
| <!-- 4. [nvm](https://github.com/nvm-sh/nvm#installing-and-updating): Node.js version manager (for Vibetype frontend setup) --> | ||
|
|
||
| 1. Create a parent directory and clone the sibling repositories into it: | ||
|
|
||
| ```sh | ||
| mkdir vibetype && cd vibetype | ||
| git clone git@github.com:maevsi/android.git # optional | ||
| git clone git@github.com:maevsi/ios.git # optional | ||
| git clone git@github.com:maevsi/postgraphile.git | ||
| git clone git@github.com:maevsi/reccoom.git # optional, private | ||
| git clone git@github.com:maevsi/sqitch.git | ||
| git clone git@github.com:maevsi/stack.git | ||
| git clone git@github.com:maevsi/vibetype.git | ||
| ``` | ||
|
|
||
| <details> | ||
| <summary>Click here if you don't have SSH set up (you should!) to use HTTPS URLs instead</summary> | ||
|
|
||
|
|
||
| ```sh | ||
| mkdir vibetype && cd vibetype | ||
| git clone https://github.com/maevsi/android.git # optional | ||
| git clone https://github.com/maevsi/ios.git # optional | ||
| git clone https://github.com/maevsi/postgraphile.git | ||
| git clone https://github.com/maevsi/reccoom.git # optional, private | ||
| git clone https://github.com/maevsi/sqitch.git | ||
| git clone https://github.com/maevsi/stack.git | ||
| git clone https://github.com/maevsi/vibetype.git | ||
| ``` | ||
| </details> | ||
|
|
||
| 2. Initialize all cloned projects for development according to their READMEs. | ||
|
|
||
| 3. Build development container images: | ||
|
|
||
| ```sh | ||
| cd stack | ||
| dargstack build | ||
| ``` | ||
|
|
||
| An interactive selection dialog will let you choose which services to build. | ||
|
|
||
| 4. Deploy: | ||
|
|
||
| ```sh | ||
| dargstack deploy | ||
| ``` | ||
|
|
||
| 5. You should now be able to access Vibetype at [https://app.localhost](https://app.localhost) 🎉 | ||
|
|
||
|
|
||
| ## Guidelines | ||
|
|
||
| ### Git & GitHub | ||
|
|
||
| Follow [@dargmuesli's Contributing Guidelines](https://gist.github.com/dargmuesli/430b7d902a22df02d88d1969a22a81b5#contribution-workflow) for branch naming, commit formatting, and the pull request workflow. | ||
|
|
||
| ### Semantic Versioning | ||
|
|
||
| Read [@dargmuesli's guide on Semantic Versioning](https://gist.github.com/dargmuesli/430b7d902a22df02d88d1969a22a81b5#file-semantic-versioning-md) for how to format PR, issue and commit titles. | ||
|
|
||
| ### dargstack | ||
|
|
||
| - Service files live in `src/development/<service>/compose.yaml` (full Compose document) and `src/production/<service>/compose.yaml` (production delta only). | ||
| - Run `dargstack build` to interactively select and build development container images after making changes to a service's source code. | ||
| - Run `dargstack document` to regenerate `artifacts/docs/README.md` after adding or modifying services. | ||
| - Do not edit `artifacts/` files directly: they are generated or gitignored. | ||
|
|
||
| ### Code Style | ||
|
|
||
| - Keep YAML keys sorted lexicographically where order is semantically irrelevant. | ||
| - Use natural language in comments; refer to code artifacts with backticks. | ||
| - Do not use abbreviations in names unless omitting them would look unnatural. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # <DEPENDENCIES> | ||
| FROM ghcr.io/dargstack/dargstack:4.0.0-beta.16 | ||
| # </DEPENDENCIES> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.