feat(workstation-setup): bump version to 4.1.1 and migrate SSH config to
sourcedock.dev
This commit is contained in:
@@ -19,7 +19,7 @@ desktop management — stdlib only, MIT-licensed.
|
|||||||
| Script | Version | Purpose |
|
| Script | Version | Purpose |
|
||||||
|--------|---------|---------|
|
|--------|---------|---------|
|
||||||
| `server-setup.py` | 1.3.0 | Server initial setup: packages, firewall (SSH verified before start), SELinux, Podman, automatic updates |
|
| `server-setup.py` | 1.3.0 | Server initial setup: packages, firewall (SSH verified before start), SELinux, Podman, automatic updates |
|
||||||
| `workstation-setup.py` | 4.1.0 | Fedora desktop setup: Brave, dev tools (Bun, Zed, uv, Rust), Flatpak apps, SSH + Git |
|
| `workstation-setup.py` | 4.1.1 | Fedora desktop setup: Brave, dev tools (Bun, Zed, uv, Rust), Flatpak apps, SSH + Git |
|
||||||
| `vllm-deploy.py` | 1.2.1 | vLLM inference server behind nginx with HTTPS and API-key auth — installs ROCm on AMD GPUs |
|
| `vllm-deploy.py` | 1.2.1 | vLLM inference server behind nginx with HTTPS and API-key auth — installs ROCm on AMD GPUs |
|
||||||
| `zabbix-deploy.py` | 1.1.0 | Zabbix 7.4 monitoring stack: PostgreSQL 18, nginx with HTTPS on :443, PHP-FPM, SELinux |
|
| `zabbix-deploy.py` | 1.1.0 | Zabbix 7.4 monitoring stack: PostgreSQL 18, nginx with HTTPS on :443, PHP-FPM, SELinux |
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ GREEN = "\033[32m"
|
|||||||
YELLOW = "\033[33m"
|
YELLOW = "\033[33m"
|
||||||
DIM = "\033[2m"
|
DIM = "\033[2m"
|
||||||
RESET = "\033[0m"
|
RESET = "\033[0m"
|
||||||
VERSION = "4.1.0"
|
VERSION = "4.1.1"
|
||||||
|
|
||||||
# dnf transactions (fresh installs download hundreds of packages) need far
|
# dnf transactions (fresh installs download hundreds of packages) need far
|
||||||
# more than a generic 60-second timeout.
|
# more than a generic 60-second timeout.
|
||||||
@@ -1047,7 +1047,7 @@ def _prompt_ssh_passphrase() -> str | None:
|
|||||||
|
|
||||||
|
|
||||||
def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
||||||
"""Set up SSH keys and Git configuration for Codeberg — interactively.
|
"""Set up SSH keys and Git configuration for sourcedock.dev — interactively.
|
||||||
|
|
||||||
Everything is created as the real user (via sudo -u / chown), never
|
Everything is created as the real user (via sudo -u / chown), never
|
||||||
left root-owned in the user's home. Returns a dict with 'skipped',
|
left root-owned in the user's home. Returns a dict with 'skipped',
|
||||||
@@ -1071,13 +1071,13 @@ def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
|||||||
_info("Would prompt for Git identity (name, email)")
|
_info("Would prompt for Git identity (name, email)")
|
||||||
_info("Would generate an ed25519 SSH key if missing")
|
_info("Would generate an ed25519 SSH key if missing")
|
||||||
_info("Would prompt for a key passphrase (empty only with a warning)")
|
_info("Would prompt for a key passphrase (empty only with a warning)")
|
||||||
_info("Would configure ~/.ssh/config for codeberg.org")
|
_info("Would configure ~/.ssh/config for sourcedock.dev")
|
||||||
_info("Would set git user.name, user.email and the codeberg insteadOf rule")
|
_info("Would set git user.name, user.email and the sourcedock.dev insteadOf rule")
|
||||||
return info
|
return info
|
||||||
|
|
||||||
# Ask whether to set up SSH at all
|
# Ask whether to set up SSH at all
|
||||||
try:
|
try:
|
||||||
answer = input("Set up Codeberg SSH + Git? [Y/n]: ").strip().lower()
|
answer = input("Set up sourcedock.dev SSH + Git? [Y/n]: ").strip().lower()
|
||||||
except (EOFError, KeyboardInterrupt):
|
except (EOFError, KeyboardInterrupt):
|
||||||
print(file=sys.stderr)
|
print(file=sys.stderr)
|
||||||
_info("SSH + Git: skipped")
|
_info("SSH + Git: skipped")
|
||||||
@@ -1150,7 +1150,7 @@ def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
|||||||
|
|
||||||
# --- Configure ~/.ssh/config ---
|
# --- Configure ~/.ssh/config ---
|
||||||
host_entry = (
|
host_entry = (
|
||||||
f"Host codeberg.org\n User git\n IdentityFile {key_path}\n IdentitiesOnly yes\n"
|
f"Host sourcedock.dev\n User git\n IdentityFile {key_path}\n IdentitiesOnly yes\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
_status("Checking SSH config")
|
_status("Checking SSH config")
|
||||||
@@ -1168,7 +1168,7 @@ def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
|||||||
except OSError:
|
except OSError:
|
||||||
existing = ""
|
existing = ""
|
||||||
|
|
||||||
if "Host codeberg.org" in existing:
|
if "Host sourcedock.dev" in existing:
|
||||||
_status_done("already configured")
|
_status_done("already configured")
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
@@ -1191,7 +1191,7 @@ def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
|||||||
git_configs = {
|
git_configs = {
|
||||||
"user.name": user_name,
|
"user.name": user_name,
|
||||||
"user.email": user_email,
|
"user.email": user_email,
|
||||||
'url."git@codeberg.org:".insteadOf': "https://codeberg.org/",
|
'url."git@sourcedock.dev:".insteadOf': "https://sourcedock.dev/",
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, value in git_configs.items():
|
for key, value in git_configs.items():
|
||||||
@@ -1216,7 +1216,7 @@ def setup_ssh(dry_run: bool = False) -> dict[str, Any]:
|
|||||||
print(file=sys.stderr)
|
print(file=sys.stderr)
|
||||||
print(
|
print(
|
||||||
f"\n{BOLD} Your SSH public key"
|
f"\n{BOLD} Your SSH public key"
|
||||||
f" (add to https://codeberg.org/settings/keys):{RESET}\n",
|
f" (add to https://sourcedock.dev/user/settings/keys):{RESET}\n",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
print(f" {GREEN}{pub_key}{RESET}", file=sys.stderr)
|
print(f" {GREEN}{pub_key}{RESET}", file=sys.stderr)
|
||||||
|
|||||||
Reference in New Issue
Block a user