mob next [ci-skip] [ci skip] [skip ci]
lastFile:tests/tests/think-gtcm.nix
This commit is contained in:
@@ -97,3 +97,138 @@
|
|||||||
|
|
||||||
# 2025-11-24 16:26:24.656220
|
# 2025-11-24 16:26:24.656220
|
||||||
+start_all()
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 10:47:30.543608
|
||||||
|
+print(node1.execute("ls -al /run/")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 10:47:47.291394
|
||||||
|
+print(node1.execute("ls -al /run/think-gtcm")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 10:51:09.769262
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 11:00:34.699136
|
||||||
|
+print(node1.execute("ls -al /run/think-gtcm")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:05:01.639108
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 11:05:52.361090
|
||||||
|
+print(node1.execute("ls -al /run/think-gtcm")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:06:02.844430
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:13:23.088862
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:14:01.467493
|
||||||
|
+print(node1.execute("ls -al /run/phpfpm/")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:16:13.687663
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 11:16:49.608807
|
||||||
|
+print(node1.execute("ls -al /run/phpfpm/")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:16:53.334603
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:17:04.779069
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:25:12.482960
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 11:25:51.342181
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:40:18.001245
|
||||||
|
+print(node1.execute("ls -al /var/lib/")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:40:37.001361
|
||||||
|
+print(node1.execute("ls -al /var/lib/think.greaterchiangmai.com")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:40:54.438752
|
||||||
|
+print(node1.execute("cat /var/lib/think.greaterchiangmai.com/.env")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:41:19.519497
|
||||||
|
+print(node1.execute("ls -al /var/lib/think.greaterchiangmai.com/storage")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:41:42.426706
|
||||||
|
+print(node1.execute("ls -al /var/lib/think.greaterchiangmai.com/storage/framework")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:41:46.387743
|
||||||
|
+print(node1.execute("ls -al /var/lib/think.greaterchiangmai.com/storage/framework/cache")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 11:41:58.617088
|
||||||
|
+print(node1.execute("ls -al /var/lib/think.greaterchiangmai.com/public")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:02:32.221565
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:05:35.375896
|
||||||
|
+print(node1.execute("php")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:06:20.909218
|
||||||
|
+print(node1.execute("gtcm")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:06:51.242291
|
||||||
|
+print(node1.execute("gtcm config:cache")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:07:17.385975
|
||||||
|
+print(node1.execute("gtcm view:cache")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:07:24.634055
|
||||||
|
+print(node1.execute("gtcm view:clear")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:08:50.031451
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 12:09:24.686449
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:12:31.634657
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 12:13:32.195413
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 12:57:53.552844
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 12:58:35.119916
|
||||||
|
+print(node1.execute("curl localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:03:51.177495
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:04:11.541577
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost/")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:04:16.055561
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost/asdfasdkfj")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:04:27.300525
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost/web")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:04:34.302473
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:06:02.700710
|
||||||
|
+print(node1.execute("artisan")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:06:09.844650
|
||||||
|
+print(node1.execute("gtcm")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:21:23.388725
|
||||||
|
+start_all()
|
||||||
|
|
||||||
|
# 2025-11-25 13:22:15.869361
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:40:50.043328
|
||||||
|
+print(node1.execute("curl -H 'Host: think.greaterchiangmai.com' localhost/category/chiangmai")[1])
|
||||||
|
|
||||||
|
# 2025-11-25 13:41:54.180205
|
||||||
|
+print(node1.execute("journalctl -u phpfpm-think-gtcm")[1])
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ let
|
|||||||
|
|
||||||
php = pkgs.php83;
|
php = pkgs.php83;
|
||||||
|
|
||||||
artisan = pkgs.writeShellScript "gtcm" ''
|
artisan = pkgs.writeScriptBin "gtcm" ''
|
||||||
#! #{pkgs.runtimeShell}
|
#! ${pkgs.runtimeShell}
|
||||||
cd ${think-gtcm}
|
cd ${think-gtcm}
|
||||||
sudo() {
|
sudo() {
|
||||||
if [[ "$USER" != ${cfg.user} ]]; then
|
if [[ "$USER" != ${cfg.user} ]]; then
|
||||||
@@ -23,11 +23,11 @@ let
|
|||||||
exec "$@"
|
exec "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
sudo ${php} artisan "$@"
|
sudo ${lib.getExe php} artisan "$@"
|
||||||
'';
|
'';
|
||||||
artisan-be = pkgs.writeShellScript "gtcm-be" ''
|
artisan-be = pkgs.writeScriptBin "gtcm-be" ''
|
||||||
#! #{pkgs.runtimeShell}
|
#! ${pkgs.runtimeShell}
|
||||||
cd ${think-gtcm}
|
cd ${think-backend-gtcm}
|
||||||
sudo() {
|
sudo() {
|
||||||
if [[ "$USER" != ${cfg.user} ]]; then
|
if [[ "$USER" != ${cfg.user} ]]; then
|
||||||
exec /run/wrappers/bin/sudo -u ${cfg.user} "$@"
|
exec /run/wrappers/bin/sudo -u ${cfg.user} "$@"
|
||||||
@@ -35,7 +35,7 @@ let
|
|||||||
exec "$@"
|
exec "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
sudo ${php} artisan "$@"
|
sudo ${lib.getExe php} artisan "$@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
@@ -83,7 +83,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
lib.type =
|
type =
|
||||||
with lib.types;
|
with lib.types;
|
||||||
attrsOf (
|
attrsOf (
|
||||||
nullOr (
|
nullOr (
|
||||||
@@ -133,70 +133,6 @@ in
|
|||||||
DB_PASSWORD = "";
|
DB_PASSWORD = "";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
type = lib.types.submodule {
|
|
||||||
freeformType = lib.types.attrsOf (
|
|
||||||
lib.types.oneOf [
|
|
||||||
lib.types.str
|
|
||||||
lib.types.int
|
|
||||||
lib.types.bool
|
|
||||||
]
|
|
||||||
);
|
|
||||||
options = {
|
|
||||||
DB_CONNECTION = lib.mkOption {
|
|
||||||
type = lib.types.enum [
|
|
||||||
"mysql"
|
|
||||||
];
|
|
||||||
default = "mysql";
|
|
||||||
example = "mysql";
|
|
||||||
description = ''
|
|
||||||
The type of database you wish to use. only "mysql".
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
DB_HOST = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = if cfg.settings.DB_CONNECTION == "pgsql" then "/run/postgresql" else "localhost";
|
|
||||||
defaultText = ''
|
|
||||||
"localhost" if DB_CONNECTION is "sqlite" or "mysql", "/run/postgresql" if "pgsql".
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
The machine which hosts your database. This is left at the
|
|
||||||
default value for "mysql" because we use the "DB_SOCKET" option
|
|
||||||
to connect to a unix socket instead. "pgsql" requires that the
|
|
||||||
unix socket location be specified here instead of at "DB_SOCKET".
|
|
||||||
This option does not affect "sqlite".
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
DB_PORT = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.int;
|
|
||||||
default =
|
|
||||||
if cfg.settings.DB_CONNECTION == "pgsql" then
|
|
||||||
5432
|
|
||||||
else if cfg.settings.DB_CONNECTION == "mysql" then
|
|
||||||
3306
|
|
||||||
else
|
|
||||||
null;
|
|
||||||
defaultText = ''
|
|
||||||
`null` if DB_CONNECTION is "sqlite", `3306` if "mysql", `5432` if "pgsql"
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
The port your database is listening at. sqlite does not require
|
|
||||||
this value to be filled.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
DB_DATABASE = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "thinkgreatercm";
|
|
||||||
};
|
|
||||||
DB_USERNAME = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "thinkgreatercm";
|
|
||||||
};
|
|
||||||
DB_PASSWORD = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "thinkgreatercm";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -214,8 +150,8 @@ in
|
|||||||
inherit (cfg) user group;
|
inherit (cfg) user group;
|
||||||
phpPackage = php;
|
phpPackage = php;
|
||||||
settings = {
|
settings = {
|
||||||
"listen.owner" = cfg.user;
|
"listen.owner" = config.services.nginx.user;
|
||||||
"listen.group" = cfg.group;
|
"listen.group" = config.services.nginx.group;
|
||||||
"listen.mode" = "0600";
|
"listen.mode" = "0600";
|
||||||
"pm" = lib.mkDefault "dynamic";
|
"pm" = lib.mkDefault "dynamic";
|
||||||
"pm.max_children" = lib.mkDefault 10;
|
"pm.max_children" = lib.mkDefault 10;
|
||||||
@@ -230,6 +166,11 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
artisan
|
||||||
|
artisan-be
|
||||||
|
];
|
||||||
|
|
||||||
systemd.services.think-gtcm-setup = {
|
systemd.services.think-gtcm-setup = {
|
||||||
description = "think.greaterchiangmai installation";
|
description = "think.greaterchiangmai installation";
|
||||||
requiredBy = [ "phpfpm-think-gtcm.service" ];
|
requiredBy = [ "phpfpm-think-gtcm.service" ];
|
||||||
@@ -268,7 +209,7 @@ in
|
|||||||
throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty { }) v}";
|
throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty { }) v}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.config);
|
secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.settings);
|
||||||
mkSecretReplacement = file: ''
|
mkSecretReplacement = file: ''
|
||||||
replace-secret ${
|
replace-secret ${
|
||||||
lib.escapeShellArgs [
|
lib.escapeShellArgs [
|
||||||
@@ -300,9 +241,9 @@ in
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# migrate & seed db
|
# migrate & seed db
|
||||||
${php} artisan key:generate --force
|
${lib.getExe php} artisan key:generate --force
|
||||||
${php} artisan migrate --force
|
${lib.getExe php} artisan migrate --force
|
||||||
${php} artisan config:cache
|
${lib.getExe php} artisan config:cache
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -329,7 +270,7 @@ in
|
|||||||
recommendedBrotliSettings = true;
|
recommendedBrotliSettings = true;
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
virtualHosts."${cfg.domain}" = {
|
virtualHosts."${cfg.domain}" = {
|
||||||
root = "${cfg.package}/share/php/think-gtcm/public";
|
root = "${think-gtcm}/public";
|
||||||
locations = {
|
locations = {
|
||||||
"/" = {
|
"/" = {
|
||||||
index = "index.php";
|
index = "index.php";
|
||||||
|
|||||||
@@ -10,24 +10,27 @@
|
|||||||
services.think-greaterchiangmai = {
|
services.think-greaterchiangmai = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
APP_SERVICES_CACHE = "/run/think-gtcm/cache/services.php";
|
||||||
APP_NAME = "Laravel";
|
APP_PACKAGES_CACHE = "/run/think-gtcm/cache/packages.php";
|
||||||
APP_ENV = "local";
|
APP_CONFIG_CACHE = "/run/think-gtcm/cache/config.php";
|
||||||
APP_KEY = "";
|
APP_ROUTES_CACHE = "/run/think-gtcm/cache/routes-v7.php";
|
||||||
APP_DEBUG = "true";
|
APP_EVENTS_CACHE = "/run/think-gtcm/cache/events.php";
|
||||||
APP_URL = "http://localhost";
|
|
||||||
|
|
||||||
LOG_CHANNEL = "stack";
|
|
||||||
LOG_DEPRECATIONS_CHANNEL = "null";
|
|
||||||
LOG_LEVEL = "debug";
|
|
||||||
|
|
||||||
DB_CONNECTION = "mysql";
|
DB_CONNECTION = "mysql";
|
||||||
DB_HOST = "localhost";
|
DB_HOST = "localhost";
|
||||||
DB_PORT = 3306;
|
DB_PORT = 3306;
|
||||||
DB_DATABASE = "thinkgtcm";
|
DB_DATABASE = "thinkgtcm";
|
||||||
DB_USERNAME = "thinkgtcm";
|
DB_USERNAME = "gtcm";
|
||||||
DB_PASSWORD = "";
|
DB_PASSWORD = "";
|
||||||
|
|
||||||
|
APP_NAME = "Laravel";
|
||||||
|
APP_ENV = "local";
|
||||||
|
APP_DEBUG = "false";
|
||||||
|
APP_URL = "http://localhost";
|
||||||
|
|
||||||
|
LOG_CHANNEL = "stack";
|
||||||
|
LOG_LEVEL = "debug";
|
||||||
|
|
||||||
BROADCAST_DRIVER = "log";
|
BROADCAST_DRIVER = "log";
|
||||||
CACHE_DRIVER = "file";
|
CACHE_DRIVER = "file";
|
||||||
FILESYSTEM_DISK = "local";
|
FILESYSTEM_DISK = "local";
|
||||||
@@ -41,19 +44,26 @@
|
|||||||
REDIS_PASSWORD = "null";
|
REDIS_PASSWORD = "null";
|
||||||
REDIS_PORT = "6379";
|
REDIS_PORT = "6379";
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID = "";
|
MAIL_MAILER = "smtp";
|
||||||
AWS_SECRET_ACCESS_KEY = "";
|
MAIL_HOST = "mailpit";
|
||||||
|
MAIL_PORT = "1025";
|
||||||
|
MAIL_USERNAME = "null";
|
||||||
|
MAIL_PASSWORD = "null";
|
||||||
|
MAIL_ENCRYPTION = "null";
|
||||||
|
MAIL_FROM_ADDRESS = "hello@example.com";
|
||||||
|
|
||||||
AWS_DEFAULT_REGION = "us-east-1";
|
AWS_DEFAULT_REGION = "us-east-1";
|
||||||
AWS_BUCKET = "";
|
|
||||||
AWS_USE_PATH_STYLE_ENDPOINT = "false";
|
AWS_USE_PATH_STYLE_ENDPOINT = "false";
|
||||||
|
|
||||||
PUSHER_APP_ID = "";
|
|
||||||
PUSHER_APP_KEY = "";
|
|
||||||
PUSHER_APP_SECRET = "";
|
|
||||||
PUSHER_HOST = "";
|
|
||||||
PUSHER_PORT = 443;
|
PUSHER_PORT = 443;
|
||||||
PUSHER_SCHEME = "https";
|
PUSHER_SCHEME = "https";
|
||||||
PUSHER_APP_CLUSTER = "mt1";
|
PUSHER_APP_CLUSTER = "mt1";
|
||||||
|
|
||||||
|
UPLOAD_MAX_FILESIZE = "5000M";
|
||||||
|
POST_MAX_SIZE = "5000M";
|
||||||
|
|
||||||
|
TEST_LOCAL = "false";
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -62,7 +72,7 @@
|
|||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
|
|
||||||
node1.wait_for_unit("phpfpm-think-greaterchiangmai")
|
node1.wait_for_unit("phpfpm-think-gtcm")
|
||||||
node1.wait_for_open_port(80)
|
node1.wait_for_open_port(80)
|
||||||
output = node1.succeed("curl localhost")
|
output = node1.succeed("curl localhost")
|
||||||
'';
|
'';
|
||||||
|
|||||||
Reference in New Issue
Block a user