create-meith 0.23.0 → 0.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.mjs +48 -39
- package/package.json +1 -1
- package/src/bin.ts +1 -1
- package/src/scaffold.ts +47 -38
package/dist/bin.mjs
CHANGED
|
@@ -325,7 +325,7 @@ var SELF_HOST_DEPLOY_KIT = [
|
|
|
325
325
|
".dockerignore",
|
|
326
326
|
".github/workflows/build.yml",
|
|
327
327
|
"Dockerfile",
|
|
328
|
-
"docker-compose.
|
|
328
|
+
"docker-compose.yaml",
|
|
329
329
|
"docker-entrypoint.sh",
|
|
330
330
|
"docker-healthcheck.sh"
|
|
331
331
|
];
|
|
@@ -534,7 +534,7 @@ export function installedPluginDefinitions() {
|
|
|
534
534
|
# docs/contributing/development.md, "Consuming the board from a workspace") \u2014 it needs
|
|
535
535
|
# the full, un-pruned node_modules tree this board installed, not what Next
|
|
536
536
|
# traced as reachable from the web server alone. The tick itself is driven
|
|
537
|
-
# by docker-compose.
|
|
537
|
+
# by docker-compose.yaml's own \`worker\` service \u2014 a lightweight loop against
|
|
538
538
|
# /api/system/tick, not a compiled worker process, because @meith/worker is
|
|
539
539
|
# not published (see the meith repository's docs/contributing/release.md).
|
|
540
540
|
ARG MEITH_VERSION
|
|
@@ -593,7 +593,7 @@ ENTRYPOINT ["./docker-entrypoint.sh"]
|
|
|
593
593
|
#
|
|
594
594
|
# "web" (the default) runs the board; "migrate" applies the schema and
|
|
595
595
|
# exits. There is no "worker" role in this image: @meith/worker is not
|
|
596
|
-
# published, so nothing here can run it \u2014 docker-compose.
|
|
596
|
+
# published, so nothing here can run it \u2014 docker-compose.yaml's own \`worker\`
|
|
597
597
|
# service drives the tick a different way, calling this image's web role
|
|
598
598
|
# over HTTP instead of running as a role of this image.
|
|
599
599
|
set -e
|
|
@@ -699,27 +699,33 @@ jobs:
|
|
|
699
699
|
{
|
|
700
700
|
echo "## Deploy this image"
|
|
701
701
|
echo
|
|
702
|
-
echo "
|
|
702
|
+
echo "Either of these goes in the MEITH_IMAGE variable on the Coolify"
|
|
703
|
+
echo "resource:"
|
|
703
704
|
echo
|
|
704
705
|
echo " $IMAGE:\${{ github.sha }}"
|
|
705
706
|
echo
|
|
706
|
-
echo "
|
|
707
|
-
echo "also pushed, as a convenience for a quick manual pull; it moves on"
|
|
708
|
-
echo "every push to main, so any later Coolify redeploy \u2014 for any reason,"
|
|
709
|
-
echo "not necessarily this one \u2014 pulls whatever main most recently built,"
|
|
710
|
-
echo "including a commit still mid-feature. Prefer the sha above for the"
|
|
711
|
-
echo "value you actually set on the resource."
|
|
707
|
+
echo " $IMAGE:latest"
|
|
712
708
|
echo
|
|
713
|
-
echo "
|
|
709
|
+
echo "The first names this run's build and nothing else, ever: nothing"
|
|
710
|
+
echo "moves under you, and an upgrade is you editing this variable."
|
|
714
711
|
echo
|
|
715
|
-
echo "
|
|
716
|
-
echo "
|
|
717
|
-
echo "
|
|
712
|
+
echo "The second follows main \u2014 every push rebuilds it and Coolify's next"
|
|
713
|
+
echo "Redeploy picks that build up, a commit still mid-feature included."
|
|
714
|
+
echo "That is the trade the quickstart takes while a board is young and"
|
|
715
|
+
echo "still gaining plugins: installing one is a push and a Redeploy, with"
|
|
716
|
+
echo "nothing on the resource to edit."
|
|
717
|
+
echo
|
|
718
|
+
echo "## One-time: check the package is public"
|
|
719
|
+
echo
|
|
720
|
+
echo "Coolify can only pull a public package, and this one may already be"
|
|
721
|
+
echo "one \u2014 a build from a public repository usually lands public. Open"
|
|
722
|
+
echo "$PKG_URL: if it does not already say Public, change it there \u2014"
|
|
723
|
+
echo "**Package settings** \u2192 **Change visibility** \u2192 **Public**."
|
|
718
724
|
} >> "$GITHUB_STEP_SUMMARY"
|
|
719
725
|
`
|
|
720
726
|
);
|
|
721
727
|
files.set(
|
|
722
|
-
"docker-compose.
|
|
728
|
+
"docker-compose.yaml",
|
|
723
729
|
`# ${name}, deployed by Coolify \u2014 the same shape as the meith repository's own
|
|
724
730
|
# docker/compose.coolify.yml: db, migrate, web, worker. See README.md for
|
|
725
731
|
# the three-step deploy story this file is the last step of.
|
|
@@ -837,7 +843,7 @@ A forum, built on [Meith](${repositoryUrl}).
|
|
|
837
843
|
## Deploy
|
|
838
844
|
|
|
839
845
|
Nothing here builds on your own server \u2014 a 2 GB VPS OOMs on a Next.js build,
|
|
840
|
-
which is the whole reason \`Dockerfile\`, \`docker-compose.
|
|
846
|
+
which is the whole reason \`Dockerfile\`, \`docker-compose.yaml\` and
|
|
841
847
|
\`.github/workflows/build.yml\` exist: something else builds the image, the
|
|
842
848
|
server only ever pulls one. Three steps, nothing to configure by hand beyond
|
|
843
849
|
one value only you know:
|
|
@@ -848,25 +854,28 @@ one value only you know:
|
|
|
848
854
|
\`GITHUB_TOKEN\` every GitHub Actions run already carries. No secret to
|
|
849
855
|
add, no registry account beyond the GitHub account you already have.
|
|
850
856
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
package
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
857
|
+
That build is the thing step 2 waits on: open the repository's
|
|
858
|
+
**Actions** tab and let the run finish, because its **Summary** is where
|
|
859
|
+
the exact image to paste into step 2 comes from. The Summary also links
|
|
860
|
+
the package itself, to check it is public \u2014 a build from a public
|
|
861
|
+
repository usually lands public already, and a private one fails
|
|
862
|
+
Coolify's pull with an authentication error no operator can act on.
|
|
863
|
+
|
|
864
|
+
2. **Point [Coolify](https://coolify.io) at \`docker-compose.yaml\`** \u2014 a
|
|
865
|
+
**Public Git repository** resource with **Docker Compose** as its build
|
|
866
|
+
pack, this repository as its source. The name is Coolify's own default,
|
|
867
|
+
so its **Compose file** field is already right when the form opens, and
|
|
868
|
+
the file already carries Coolify's own "magic variables" for
|
|
869
|
+
\`AUTH_SECRET\`, \`TICK_SECRET\` and the database password, generated on
|
|
870
|
+
the first deploy and never typed in. The one thing Coolify cannot
|
|
871
|
+
generate is the image step 1 just pushed: set \`MEITH_IMAGE\` in the
|
|
872
|
+
resource's own environment to one of the two values that run's Summary
|
|
873
|
+
printed (\`docker-compose.yaml\` refuses to start without it, with a
|
|
874
|
+
message saying why). \`ghcr.io/<you>/${name}:\${{ github.sha }}\` names
|
|
875
|
+
that one build and nothing else, ever; \`ghcr.io/<you>/${name}:latest\`
|
|
876
|
+
follows \`main\` instead, so installing a plugin later is a push and a
|
|
877
|
+
**Redeploy** \u2014 the trade the quickstart takes, at the cost of an
|
|
878
|
+
unrelated redeploy pulling whatever \`main\` most recently built.
|
|
870
879
|
|
|
871
880
|
3. **Deploy, then \`/install\` on your own domain.** Coolify issues the
|
|
872
881
|
certificate; the installer from there is the one
|
|
@@ -882,7 +891,7 @@ build side of this, for a board of any size.
|
|
|
882
891
|
|
|
883
892
|
**Building it yourself**: works on any machine with Docker, if you would
|
|
884
893
|
rather not use GitHub Actions for the build \u2014 push the result wherever
|
|
885
|
-
\`docker-compose.
|
|
894
|
+
\`docker-compose.yaml\`'s \`MEITH_IMAGE\` can reach.
|
|
886
895
|
|
|
887
896
|
\`\`\`sh
|
|
888
897
|
docker build --build-arg MEITH_VERSION=$(node -p "require('./package.json').dependencies['@meith/web']") -t ${name} .
|
|
@@ -890,14 +899,14 @@ docker build --build-arg MEITH_VERSION=$(node -p "require('./package.json').depe
|
|
|
890
899
|
|
|
891
900
|
**Without a panel**: [docs/getting-started/deployment/docker-compose.md](${repositoryUrl}/blob/main/docs/getting-started/deployment/docker-compose.md)
|
|
892
901
|
is the same four containers by hand \u2014 your own \`.env\`, a reverse proxy you
|
|
893
|
-
already run, no Coolify. \`Dockerfile\` and \`docker-compose.
|
|
902
|
+
already run, no Coolify. \`Dockerfile\` and \`docker-compose.yaml\` here are this
|
|
894
903
|
board's own version of exactly that shape.
|
|
895
904
|
|
|
896
905
|
Two things nothing configures for you:
|
|
897
906
|
|
|
898
907
|
- **Mail.** Until \`MAIL_DRIVER\` and its three settings exist, every message is
|
|
899
908
|
written to the log and delivered to nobody, so password reset fails silently.
|
|
900
|
-
- **The tick.** \`docker-compose.
|
|
909
|
+
- **The tick.** \`docker-compose.yaml\`'s \`worker\` service drives it here \u2014 a small
|
|
901
910
|
loop calling \`/api/system/tick\` once a minute, since \`@meith/web\`'s own
|
|
902
911
|
worker package is not something a board outside the meith monorepo can
|
|
903
912
|
depend on yet. Deploy some other way and something still has to call that
|
|
@@ -1856,7 +1865,7 @@ async function run(argv, version) {
|
|
|
1856
1865
|
}
|
|
1857
1866
|
|
|
1858
1867
|
// src/bin.ts
|
|
1859
|
-
var result = await run(process.argv.slice(2), "0.23.
|
|
1868
|
+
var result = await run(process.argv.slice(2), "0.23.2");
|
|
1860
1869
|
for (const line of result.lines) {
|
|
1861
1870
|
if (result.code === 0) console.log(line);
|
|
1862
1871
|
else console.error(line);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-meith",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.2",
|
|
4
4
|
"description": "Scaffold a Meith board, plugin or theme — npx create-meith <name> writes a deployable board workspace; --plugin and --theme write extension workspaces built on the published kits.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
package/src/bin.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { run } from './cli'
|
|
3
3
|
|
|
4
|
-
const result = await run(process.argv.slice(2), '0.23.
|
|
4
|
+
const result = await run(process.argv.slice(2), '0.23.2')
|
|
5
5
|
for (const line of result.lines) {
|
|
6
6
|
if (result.code === 0) console.log(line)
|
|
7
7
|
else console.error(line)
|
package/src/scaffold.ts
CHANGED
|
@@ -352,7 +352,7 @@ const SELF_HOST_DEPLOY_KIT = [
|
|
|
352
352
|
'.dockerignore',
|
|
353
353
|
'.github/workflows/build.yml',
|
|
354
354
|
'Dockerfile',
|
|
355
|
-
'docker-compose.
|
|
355
|
+
'docker-compose.yaml',
|
|
356
356
|
'docker-entrypoint.sh',
|
|
357
357
|
'docker-healthcheck.sh',
|
|
358
358
|
] as const
|
|
@@ -573,7 +573,7 @@ export function installedPluginDefinitions() {
|
|
|
573
573
|
# docs/contributing/development.md, "Consuming the board from a workspace") — it needs
|
|
574
574
|
# the full, un-pruned node_modules tree this board installed, not what Next
|
|
575
575
|
# traced as reachable from the web server alone. The tick itself is driven
|
|
576
|
-
# by docker-compose.
|
|
576
|
+
# by docker-compose.yaml's own \`worker\` service — a lightweight loop against
|
|
577
577
|
# /api/system/tick, not a compiled worker process, because @meith/worker is
|
|
578
578
|
# not published (see the meith repository's docs/contributing/release.md).
|
|
579
579
|
ARG MEITH_VERSION
|
|
@@ -633,7 +633,7 @@ ENTRYPOINT ["./docker-entrypoint.sh"]
|
|
|
633
633
|
#
|
|
634
634
|
# "web" (the default) runs the board; "migrate" applies the schema and
|
|
635
635
|
# exits. There is no "worker" role in this image: @meith/worker is not
|
|
636
|
-
# published, so nothing here can run it — docker-compose.
|
|
636
|
+
# published, so nothing here can run it — docker-compose.yaml's own \`worker\`
|
|
637
637
|
# service drives the tick a different way, calling this image's web role
|
|
638
638
|
# over HTTP instead of running as a role of this image.
|
|
639
639
|
set -e
|
|
@@ -742,28 +742,34 @@ jobs:
|
|
|
742
742
|
{
|
|
743
743
|
echo "## Deploy this image"
|
|
744
744
|
echo
|
|
745
|
-
echo "
|
|
745
|
+
echo "Either of these goes in the MEITH_IMAGE variable on the Coolify"
|
|
746
|
+
echo "resource:"
|
|
746
747
|
echo
|
|
747
748
|
echo " $IMAGE:\${{ github.sha }}"
|
|
748
749
|
echo
|
|
749
|
-
echo "
|
|
750
|
-
echo "also pushed, as a convenience for a quick manual pull; it moves on"
|
|
751
|
-
echo "every push to main, so any later Coolify redeploy — for any reason,"
|
|
752
|
-
echo "not necessarily this one — pulls whatever main most recently built,"
|
|
753
|
-
echo "including a commit still mid-feature. Prefer the sha above for the"
|
|
754
|
-
echo "value you actually set on the resource."
|
|
750
|
+
echo " $IMAGE:latest"
|
|
755
751
|
echo
|
|
756
|
-
echo "
|
|
752
|
+
echo "The first names this run's build and nothing else, ever: nothing"
|
|
753
|
+
echo "moves under you, and an upgrade is you editing this variable."
|
|
757
754
|
echo
|
|
758
|
-
echo "
|
|
759
|
-
echo "
|
|
760
|
-
echo "
|
|
755
|
+
echo "The second follows main — every push rebuilds it and Coolify's next"
|
|
756
|
+
echo "Redeploy picks that build up, a commit still mid-feature included."
|
|
757
|
+
echo "That is the trade the quickstart takes while a board is young and"
|
|
758
|
+
echo "still gaining plugins: installing one is a push and a Redeploy, with"
|
|
759
|
+
echo "nothing on the resource to edit."
|
|
760
|
+
echo
|
|
761
|
+
echo "## One-time: check the package is public"
|
|
762
|
+
echo
|
|
763
|
+
echo "Coolify can only pull a public package, and this one may already be"
|
|
764
|
+
echo "one — a build from a public repository usually lands public. Open"
|
|
765
|
+
echo "$PKG_URL: if it does not already say Public, change it there —"
|
|
766
|
+
echo "**Package settings** → **Change visibility** → **Public**."
|
|
761
767
|
} >> "$GITHUB_STEP_SUMMARY"
|
|
762
768
|
`,
|
|
763
769
|
)
|
|
764
770
|
|
|
765
771
|
files.set(
|
|
766
|
-
'docker-compose.
|
|
772
|
+
'docker-compose.yaml',
|
|
767
773
|
`# ${name}, deployed by Coolify — the same shape as the meith repository's own
|
|
768
774
|
# docker/compose.coolify.yml: db, migrate, web, worker. See README.md for
|
|
769
775
|
# the three-step deploy story this file is the last step of.
|
|
@@ -882,7 +888,7 @@ A forum, built on [Meith](${repositoryUrl}).
|
|
|
882
888
|
## Deploy
|
|
883
889
|
|
|
884
890
|
Nothing here builds on your own server — a 2 GB VPS OOMs on a Next.js build,
|
|
885
|
-
which is the whole reason \`Dockerfile\`, \`docker-compose.
|
|
891
|
+
which is the whole reason \`Dockerfile\`, \`docker-compose.yaml\` and
|
|
886
892
|
\`.github/workflows/build.yml\` exist: something else builds the image, the
|
|
887
893
|
server only ever pulls one. Three steps, nothing to configure by hand beyond
|
|
888
894
|
one value only you know:
|
|
@@ -893,25 +899,28 @@ one value only you know:
|
|
|
893
899
|
\`GITHUB_TOKEN\` every GitHub Actions run already carries. No secret to
|
|
894
900
|
add, no registry account beyond the GitHub account you already have.
|
|
895
901
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
package
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
902
|
+
That build is the thing step 2 waits on: open the repository's
|
|
903
|
+
**Actions** tab and let the run finish, because its **Summary** is where
|
|
904
|
+
the exact image to paste into step 2 comes from. The Summary also links
|
|
905
|
+
the package itself, to check it is public — a build from a public
|
|
906
|
+
repository usually lands public already, and a private one fails
|
|
907
|
+
Coolify's pull with an authentication error no operator can act on.
|
|
908
|
+
|
|
909
|
+
2. **Point [Coolify](https://coolify.io) at \`docker-compose.yaml\`** — a
|
|
910
|
+
**Public Git repository** resource with **Docker Compose** as its build
|
|
911
|
+
pack, this repository as its source. The name is Coolify's own default,
|
|
912
|
+
so its **Compose file** field is already right when the form opens, and
|
|
913
|
+
the file already carries Coolify's own "magic variables" for
|
|
914
|
+
\`AUTH_SECRET\`, \`TICK_SECRET\` and the database password, generated on
|
|
915
|
+
the first deploy and never typed in. The one thing Coolify cannot
|
|
916
|
+
generate is the image step 1 just pushed: set \`MEITH_IMAGE\` in the
|
|
917
|
+
resource's own environment to one of the two values that run's Summary
|
|
918
|
+
printed (\`docker-compose.yaml\` refuses to start without it, with a
|
|
919
|
+
message saying why). \`ghcr.io/<you>/${name}:\${{ github.sha }}\` names
|
|
920
|
+
that one build and nothing else, ever; \`ghcr.io/<you>/${name}:latest\`
|
|
921
|
+
follows \`main\` instead, so installing a plugin later is a push and a
|
|
922
|
+
**Redeploy** — the trade the quickstart takes, at the cost of an
|
|
923
|
+
unrelated redeploy pulling whatever \`main\` most recently built.
|
|
915
924
|
|
|
916
925
|
3. **Deploy, then \`/install\` on your own domain.** Coolify issues the
|
|
917
926
|
certificate; the installer from there is the one
|
|
@@ -927,7 +936,7 @@ build side of this, for a board of any size.
|
|
|
927
936
|
|
|
928
937
|
**Building it yourself**: works on any machine with Docker, if you would
|
|
929
938
|
rather not use GitHub Actions for the build — push the result wherever
|
|
930
|
-
\`docker-compose.
|
|
939
|
+
\`docker-compose.yaml\`'s \`MEITH_IMAGE\` can reach.
|
|
931
940
|
|
|
932
941
|
\`\`\`sh
|
|
933
942
|
docker build --build-arg MEITH_VERSION=$(node -p "require('./package.json').dependencies['@meith/web']") -t ${name} .
|
|
@@ -935,14 +944,14 @@ docker build --build-arg MEITH_VERSION=$(node -p "require('./package.json').depe
|
|
|
935
944
|
|
|
936
945
|
**Without a panel**: [docs/getting-started/deployment/docker-compose.md](${repositoryUrl}/blob/main/docs/getting-started/deployment/docker-compose.md)
|
|
937
946
|
is the same four containers by hand — your own \`.env\`, a reverse proxy you
|
|
938
|
-
already run, no Coolify. \`Dockerfile\` and \`docker-compose.
|
|
947
|
+
already run, no Coolify. \`Dockerfile\` and \`docker-compose.yaml\` here are this
|
|
939
948
|
board's own version of exactly that shape.
|
|
940
949
|
|
|
941
950
|
Two things nothing configures for you:
|
|
942
951
|
|
|
943
952
|
- **Mail.** Until \`MAIL_DRIVER\` and its three settings exist, every message is
|
|
944
953
|
written to the log and delivered to nobody, so password reset fails silently.
|
|
945
|
-
- **The tick.** \`docker-compose.
|
|
954
|
+
- **The tick.** \`docker-compose.yaml\`'s \`worker\` service drives it here — a small
|
|
946
955
|
loop calling \`/api/system/tick\` once a minute, since \`@meith/web\`'s own
|
|
947
956
|
worker package is not something a board outside the meith monorepo can
|
|
948
957
|
depend on yet. Deploy some other way and something still has to call that
|