86 lines
2.8 KiB
Markdown
86 lines
2.8 KiB
Markdown
# fedora-server
|
|
|
|
Provisioner **Fedora** untuk menjadikan VPS langsung siap sebagai **server container**:
|
|
[Podman](https://podman.io) + `podman-compose` + **Cockpit** (`cockpit-podman`) + pendukung.
|
|
|
|
Satu perintah:
|
|
|
|
```bash
|
|
curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/fedora-server/raw/branch/main/install.sh | sudo bash
|
|
```
|
|
|
|
## Yang dipasang
|
|
|
|
| Kategori | Paket |
|
|
|---|---|
|
|
| Container engine | `podman`, `podman-compose`, `buildah`, `skopeo` |
|
|
| Manajemen web | `cockpit`, `cockpit-podman`, `cockpit-storaged`, `cockpit-networkmanager` |
|
|
| Util | `git`, `jq` |
|
|
| SELinux tooling | `policycoreutils-python-utils` |
|
|
|
|
Service yang diaktifkan:
|
|
- `podman.socket` — API socket (untuk Cockpit/klien remote).
|
|
- `podman-restart.service` — **container ber-`restart:` policy naik otomatis saat boot**.
|
|
- `cockpit.socket` — web UI di `https://<ip>:9090`.
|
|
|
|
## Opsi
|
|
|
|
```bash
|
|
install.sh [opsi]
|
|
|
|
--update jalankan `dnf upgrade` dulu (default: tidak)
|
|
--with-docker-shim pasang podman-docker (perintah `docker` -> podman)
|
|
--with-tui pasang podman-tui (TUI di terminal)
|
|
--no-cockpit tanpa Cockpit (podman saja)
|
|
--admin-user NAME buat user (grup wheel) untuk login Cockpit
|
|
--uninstall lepas paket & service yang dipasang skrip ini
|
|
```
|
|
|
|
Contoh:
|
|
|
|
```bash
|
|
# podman saja, tanpa Cockpit
|
|
curl -fsSL .../install.sh | sudo bash -s -- --no-cockpit
|
|
|
|
# lengkap + shim docker + user admin
|
|
curl -fsSL .../install.sh | sudo bash -s -- --with-docker-shim --admin-user admin
|
|
```
|
|
|
|
Skrip **idempotent** — aman dijalankan ulang.
|
|
|
|
## Setelah selesai
|
|
|
|
```bash
|
|
podman run --rm docker.io/alpine echo "podman jalan"
|
|
podman compose up -d # di folder berisi compose.yaml
|
|
```
|
|
|
|
**Cockpit**: buka `https://<ip-vps>:9090`, login pakai user Linux + password.
|
|
> Cloud image biasanya *key-only* (root tanpa password) → buat user dulu:
|
|
> `useradd -m admin && passwd admin`, lalu login `admin`.
|
|
|
|
## Catatan penting
|
|
|
|
- **Rootful** secara default (paling cocok untuk server & VPN/tun/host-network). Untuk
|
|
rootless, buat user non-root (subuid/subgid dibuat otomatis di Fedora) dan pakai
|
|
`systemctl --user enable podman-restart.service`.
|
|
- **SELinux** (kalau `Enforcing`): bind mount ke path host butuh relabel — tambahkan
|
|
`:z` (shared) atau `:Z` (private) di compose/volume, cth `- ./data:/data:Z`.
|
|
Tanpa itu bisa muncul "Permission denied" padahal file ada.
|
|
- **Autostart container** mengandalkan `podman-restart.service` (sudah di-enable). Urutan
|
|
antar-service tidak dijamin; untuk itu pakai **Quadlet**.
|
|
- **firewalld**: kalau aktif, service `cockpit` dibuka otomatis. Podman mengatur aturan
|
|
port container-nya sendiri via integrasi firewalld.
|
|
|
|
## Uninstall
|
|
|
|
```bash
|
|
curl -fsSL .../install.sh | sudo bash -s -- --uninstall
|
|
```
|
|
|
|
`podman` dan data container (`/var/lib/containers`) tidak dihapus otomatis.
|
|
|
|
## Lisensi
|
|
|
|
MIT — lihat [LICENSE](LICENSE).
|