From 1f14f7afb47cfc73fe83a5e47b692b1474f8fc1f Mon Sep 17 00:00:00 2001 From: netkas Date: Wed, 19 Mar 2025 13:06:43 -0400 Subject: [PATCH] Add signing keys to Docker configuration and update InitializeCommand --- Dockerfile | 5 ++-- docker-compose.test.yml | 23 +++++-------------- .../Classes/CliCommands/InitializeCommand.php | 6 +++-- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index b0fd4f2..338aae4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -135,11 +135,12 @@ RUN chmod +x /usr/local/bin/entrypoint.sh ENV SB_MODE="automated" ENV SB_STORAGE_PATH="/etc/socialbox" ENV CONFIGLIB_PATH="/etc/config" -ENV LOGGING_DIRECTORY="/var/log" ENV LOGLIB_UDP_ENABLED="true" ENV LOGLIB_UDP_HOST="127.0.0.1" ENV LOGLIB_UDP_PORT="5131" -ENV LOGLIB_UDP_TRACE_FORMAT="4096" +ENV LOGLIB_UDP_TRACE_FORMAT="full" +ENV LOGLIB_CONSOLE_ENABLED="true" +ENV LOGLIB_CONSOLE_TRACE_FORMAT="full" # Set the entrypoint ENTRYPOINT ["/usr/bin/bash", "/usr/local/bin/entrypoint.sh"] diff --git a/docker-compose.test.yml b/docker-compose.test.yml index c45cd1f..c0d1fac 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -32,26 +32,21 @@ services: SB_INSTANCE_NAME: ${SB_COFFEE_NAME:-coffee} # Instance name SB_COFFEE_NAME SB_INSTANCE_DOMAIN: ${SB_COFFEE_DOMAIN:-coffee.com} # Instance domain SB_COFFEE_DOMAIN SB_INSTANCE_RPC_ENDPOINT: ${SB_COFFEE_RPC_ENDPOINT:-http://coffee_socialbox:8085/} # Instance RPC endpoint SB_COFFEE_RPC_ENDPOINT - SB_LOGGING_CONSOLE_ENABLED: ${SB_LOGGING_CONSOLE_ENABLED:-true} - SB_LOGGING_CONSOLE_LEVEL: ${SB_LOGGING_CONSOLE_LEVEL:-debug} - SB_LOGGING_FILE_ENABLED: ${SB_LOGGING_FILE_ENABLED:-true} - SB_LOGGING_FILE_LEVEL: ${SB_LOGGING_FILE_LEVEL:-debug} SB_SECURITY_DISPLAY_INTERNAL_EXCEPTIONS: 'true' SB_CRYPTO_KEYPAIR_EXPIRES: ${SB_CRYPTO_KEYPAIR_EXPIRES} - SB_CRYPTO_ENCRYPTION_KEYS_COUNT: ${SB_CRYPTO_ENCRYPTION_KEYS_COUNT:-10} - SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM: ${SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM:-xchacha20} - SB_CRYPTO_TRANSPORT_ENCRYPTION_ALGORITHM: ${SB_CRYPTO_TRANSPORT_ENCRYPTION_ALGORITHM:-chacha20} SB_DATABASE_HOST: coffee_mariadb SB_DATABASE_USERNAME: ${MYSQL_USER:-socialbox} SB_DATABASE_PASSWORD: ${MYSQL_PASSWORD:-socialbox} SB_DATABASE_NAME: ${MYSQL_DATABASE:-socialbox} SB_CACHE_ENABLED: ${SB_CACHE_ENABLED:-true} - SB_CACHE_ENGINE: redis SB_CACHE_HOST: coffee_redis SB_CACHE_PORT: ${SB_CACHE_PORT:-6379} SB_CACHE_USERNAME: ${SB_CACHE_USERNAME:-root} SB_CACHE_PASSWORD: ${SB_CACHE_PASSWORD:-root} SB_CACHE_DATABASE: ${SB_CACHE_DATABASE:-0} + # Signing keys for this server + SB_SIGNING_PUBLIC_KEY: sig:g59Cf8j1wmQmRg1MkveYbpdiZ-1-_hFU9eRRJmQAwmc + SB_SIGNING_PRIVATE_KEY: sig:tTVe59Ko5XuwgS8PneR92FAOqbgSHTKYn8U-lQRB9KODn0J_yPXCZCZGDUyS95hul2Jn7X7-EVT15FEmZADCZw # Mocking, required for testing without the need for configuring actual DNS records # Usage: SB_INSTANCE_DNS_MOCK_: # Environment Variable name is ignored, only the value is used with the prefix being used to detect @@ -134,26 +129,20 @@ services: SB_INSTANCE_NAME: ${SB_TEAPOT_NAME:-teapot} # Instance name SB_TEAPOT_NAME SB_INSTANCE_DOMAIN: ${SB_TEAPOT_DOMAIN:-teapot.com} # Instance domain SB_TEAPOT_DOMAIN SB_INSTANCE_RPC_ENDPOINT: ${SB_TEAPOT_RPC_ENDPOINT:-http://teapot_socialbox:8085/} # Instance RPC endpoint SB_TEAPOT_RPC_ENDPOINT - SB_LOGGING_CONSOLE_ENABLED: ${SB_LOGGING_CONSOLE_ENABLED:-true} - SB_LOGGING_CONSOLE_LEVEL: ${SB_LOGGING_CONSOLE_LEVEL:-debug} - SB_LOGGING_FILE_ENABLED: ${SB_LOGGING_FILE_ENABLED:-true} - SB_LOGGING_FILE_LEVEL: ${SB_LOGGING_FILE_LEVEL:-debug} SB_SECURITY_DISPLAY_INTERNAL_EXCEPTIONS: 'true' - SB_CRYPTO_KEYPAIR_EXPIRES: ${SB_CRYPTO_KEYPAIR_EXPIRES} - SB_CRYPTO_ENCRYPTION_KEYS_COUNT: ${SB_CRYPTO_ENCRYPTION_KEYS_COUNT:-10} - SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM: ${SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM:-xchacha20} - SB_CRYPTO_TRANSPORT_ENCRYPTION_ALGORITHM: ${SB_CRYPTO_TRANSPORT_ENCRYPTION_ALGORITHM:-chacha20} SB_DATABASE_HOST: teapot_mariadb SB_DATABASE_USERNAME: ${MYSQL_USER:-socialbox} SB_DATABASE_PASSWORD: ${MYSQL_PASSWORD:-socialbox} SB_DATABASE_NAME: ${MYSQL_DATABASE:-socialbox} SB_CACHE_ENABLED: ${SB_CACHE_ENABLED:-true} - SB_CACHE_ENGINE: redis SB_CACHE_HOST: teapot_redis SB_CACHE_PORT: ${SB_CACHE_PORT:-6379} SB_CACHE_USERNAME: ${SB_CACHE_USERNAME:-root} SB_CACHE_PASSWORD: ${SB_CACHE_PASSWORD:-root} SB_CACHE_DATABASE: ${SB_CACHE_DATABASE:-0} + # Signing keys for this server + SB_SIGNING_PUBLIC_KEY: sig:MDXUuripAo_IAv-EZTEoFhpIdhsXxfMLNunSnQzxYiY + SB_SIGNING_PRIVATE_KEY: sig:kPfGxpsnisJIp5pKuD1AI7-T1bLk1S-EGOr7jBq5AO4wNdS6uKkCj8gC_4RlMSgWGkh2GxfF8ws26dKdDPFiJg # Mocking, required for testing without the need for configuring actual DNS records # Usage: SB_INSTANCE_DNS_MOCK_: # Environment Variable name is ignored, only the value is used with the prefix being used to detect diff --git a/src/Socialbox/Classes/CliCommands/InitializeCommand.php b/src/Socialbox/Classes/CliCommands/InitializeCommand.php index ae81c57..0e9e694 100644 --- a/src/Socialbox/Classes/CliCommands/InitializeCommand.php +++ b/src/Socialbox/Classes/CliCommands/InitializeCommand.php @@ -202,6 +202,8 @@ // Security & Cryptography Configuration 'SB_SECURITY_DISPLAY_INTERNAL_EXCEPTIONS' => 'security.display_internal_exceptions', + 'SB_SIGNING_PUBLIC_KEY' => 'cryptography.host_public_key', + 'SB_SIGNING_PRIVATE_KEY' => 'cryptography.host_private_key', 'SB_CRYPTO_KEYPAIR_EXPIRES' => 'cryptography.host_keypair_expires', 'SB_CRYPTO_ENCRYPTION_KEYS_COUNT' => 'cryptography.encryption_keys_count', 'SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM' => 'cryptography.encryption_keys_algorithm', @@ -215,7 +217,6 @@ 'SB_DATABASE_NAME' => 'database.name', 'SB_CACHE_ENABLED' => 'cache.enabled', - 'SB_CACHE_ENGINE' => 'cache.engine', 'SB_CACHE_HOST' => 'cache.host', 'SB_CACHE_PORT' => 'cache.port', 'SB_CACHE_USERNAME' => 'cache.username', @@ -236,11 +237,12 @@ case 'SB_INSTANCE_NAME': case 'SB_CRYPTO_ENCRYPTION_KEYS_ALGORITHM': case 'SB_CRYPTO_TRANSPORT_ENCRYPTION_ALGORITHM': - case 'SB_CACHE_ENGINE': case 'SB_CACHE_HOST': case 'SB_CACHE_USERNAME': case 'SB_CACHE_PASSWORD': case 'SB_CACHE_DATABASE': + case 'SB_SIGNING_PUBLIC_KEY': + case 'SB_SIGNING_PRIVATE_KEY': if($variable !== false) { Configuration::getConfigurationLib()->set($config, $variable);