fix(apps): stabilize saleor and netbird launch
This commit is contained in:
@@ -1080,7 +1080,7 @@ pub(super) async fn get_app_config(
|
||||
None,
|
||||
),
|
||||
"saleor" => (
|
||||
vec!["9000:80".to_string(), "8000:8000".to_string()],
|
||||
vec!["9010:80".to_string(), "8000:8000".to_string()],
|
||||
vec!["/var/lib/archipelago/saleor:/app/media".to_string()],
|
||||
vec![],
|
||||
None,
|
||||
|
||||
@@ -167,6 +167,34 @@ async fn repair_netbird_unified_origin() {
|
||||
let _ = pull_image_with_retry(NETBIRD_DASHBOARD_IMAGE).await;
|
||||
let _ = pull_image_with_retry(NETBIRD_PROXY_IMAGE).await;
|
||||
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args([
|
||||
"network",
|
||||
"disconnect",
|
||||
"-f",
|
||||
"netbird-net",
|
||||
"netbird-server",
|
||||
])
|
||||
.output()
|
||||
.await;
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args([
|
||||
"network",
|
||||
"connect",
|
||||
"--alias",
|
||||
"netbird-server",
|
||||
"netbird-net",
|
||||
"netbird-server",
|
||||
])
|
||||
.output()
|
||||
.await;
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args(["restart", "netbird-server"])
|
||||
.output()
|
||||
.await;
|
||||
|
||||
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
|
||||
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args([
|
||||
"run",
|
||||
@@ -200,32 +228,6 @@ async fn repair_netbird_unified_origin() {
|
||||
])
|
||||
.output()
|
||||
.await;
|
||||
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args([
|
||||
"network",
|
||||
"disconnect",
|
||||
"-f",
|
||||
"netbird-net",
|
||||
"netbird-server",
|
||||
])
|
||||
.output()
|
||||
.await;
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args([
|
||||
"network",
|
||||
"connect",
|
||||
"--alias",
|
||||
"netbird-server",
|
||||
"netbird-net",
|
||||
"netbird-server",
|
||||
])
|
||||
.output()
|
||||
.await;
|
||||
let _ = tokio::process::Command::new("podman")
|
||||
.args(["restart", "netbird-server"])
|
||||
.output()
|
||||
.await;
|
||||
}
|
||||
|
||||
async fn repair_saleor_network_aliases() {
|
||||
@@ -1736,8 +1738,9 @@ impl RpcHandler {
|
||||
|
||||
let db_pass = super::config::read_or_generate_secret("saleor-db-password").await;
|
||||
let secret_key = super::config::read_or_generate_secret("saleor-secret-key").await;
|
||||
let admin_pass = super::config::read_or_generate_secret("saleor-admin-password").await;
|
||||
let host_ip = &self.config.host_ip;
|
||||
let dashboard_url = format!("http://{}:9000/", host_ip);
|
||||
let dashboard_url = format!("http://{}:9010/", host_ip);
|
||||
let api_url = format!("http://{}:8000/graphql/", host_ip);
|
||||
let allowed_hosts = format!("localhost,127.0.0.1,api,saleor-api,{}", host_ip);
|
||||
let database_url = format!("postgres://saleor:{}@db/saleor", db_pass);
|
||||
@@ -1797,8 +1800,6 @@ impl RpcHandler {
|
||||
"--health-cmd=valkey-cli ping || exit 1",
|
||||
"--health-interval=30s",
|
||||
"--health-retries=3",
|
||||
"-v",
|
||||
"/var/lib/archipelago/saleor-cache:/data",
|
||||
SALEOR_VALKEY_IMAGE,
|
||||
]);
|
||||
run_required_stack_command("saleor", "create cache", &mut cache_cmd).await?;
|
||||
@@ -1928,6 +1929,30 @@ impl RpcHandler {
|
||||
}
|
||||
}
|
||||
|
||||
let mut admin_cmd = tokio::process::Command::new("podman");
|
||||
admin_cmd.args([
|
||||
"run",
|
||||
"--rm",
|
||||
"--network",
|
||||
"saleor-net",
|
||||
"-v",
|
||||
"/var/lib/archipelago/saleor:/app/media",
|
||||
]);
|
||||
admin_cmd.args(&saleor_env);
|
||||
admin_cmd.args([
|
||||
"-e",
|
||||
"DJANGO_SUPERUSER_EMAIL=admin@example.com",
|
||||
"-e",
|
||||
&format!("DJANGO_SUPERUSER_PASSWORD={}", admin_pass),
|
||||
SALEOR_API_IMAGE,
|
||||
"python3",
|
||||
"manage.py",
|
||||
"createsuperuser",
|
||||
"--noinput",
|
||||
]);
|
||||
run_required_stack_command("saleor", "create admin user", &mut admin_cmd).await?;
|
||||
install_log("INSTALL INFO: saleor admin email admin@example.com; password stored in /var/lib/archipelago/secrets/saleor-admin-password").await;
|
||||
|
||||
let mut api_cmd = tokio::process::Command::new("podman");
|
||||
api_cmd.args([
|
||||
"run",
|
||||
@@ -2005,11 +2030,17 @@ impl RpcHandler {
|
||||
"saleor-net",
|
||||
"--restart=unless-stopped",
|
||||
"--cap-drop=ALL",
|
||||
"--cap-add=CHOWN",
|
||||
"--cap-add=DAC_OVERRIDE",
|
||||
"--cap-add=FOWNER",
|
||||
"--cap-add=NET_BIND_SERVICE",
|
||||
"--cap-add=SETGID",
|
||||
"--cap-add=SETUID",
|
||||
"--security-opt=no-new-privileges:true",
|
||||
"--memory=256m",
|
||||
"--pids-limit=2048",
|
||||
"-p",
|
||||
"9000:80",
|
||||
"9010:80",
|
||||
"-e",
|
||||
&format!("API_URL={}", api_url),
|
||||
"-e",
|
||||
@@ -2128,6 +2159,11 @@ LETSENCRYPT_DOMAIN=none
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
# Route API/auth through the host-published server port. Rootless Podman
|
||||
# can give netbird-server a new container IP on restart while nginx keeps
|
||||
# an old resolved address, which breaks login with 502s.
|
||||
set $netbird_server http://169.254.1.2:8086;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
@@ -2135,14 +2171,14 @@ LETSENCRYPT_DOMAIN=none
|
||||
proxy_http_version 1.1;
|
||||
|
||||
location ~ ^/(relay|ws-proxy/) {{
|
||||
proxy_pass http://netbird-server:80;
|
||||
proxy_pass $netbird_server;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_read_timeout 1d;
|
||||
}}
|
||||
|
||||
location ~ ^/(api|oauth2)(/|$) {{
|
||||
proxy_pass http://netbird-server:80;
|
||||
proxy_pass $netbird_server;
|
||||
}}
|
||||
|
||||
location ~ ^/(signalexchange\.SignalExchange|management\.ManagementService)/ {{
|
||||
|
||||
Reference in New Issue
Block a user