Ubuntu Update Manager, Ubuntu/Debian tabanlı sunucularda kritik sistem paketlerini (kernel, systemd, SSH, Docker, BIND9, ağ araçları vb.) izlemek ve güncellemek için geliştirilmiş, Django tabanlı küçük bir web arayüzüdür. Hangi paketlerin güncellenebilir durumda olduğunu, güncellemenin bir reboot, bir servis restart'ı mı gerektirdiğini yoksa etkisiz mi olduğunu tek bir panelden gösterir ve tek tıkla o paketi güncelleyebilmenizi sağlar.
⚠️ Bu proje third-party (bağımsız/üçüncü taraf) bir araçtır. Canonical veya Ubuntu ile resmi hiçbir bağlantısı yoktur; "Ubuntu" ismi yalnızca hedef işletim sistemini belirtmek amacıyla kullanılmıştır.
Uygulama apt/apt-get üzerinden çalışır, bu nedenle yalnızca Debian/Ubuntu tabanlı sistemlerde kullanılabilir.
apt işlemleri Python'un apt modülü (python3-apt) üzerinden yürütülür. Bu paket PyPI üzerinden kurulamaz, sistem paket yöneticisinden gelmelidir:
sudo apt update
sudo apt install -y python3-venv python3-aptProje /opt/update_manager altına yerleştirilecek şekilde tasarlanmıştır (systemd servis dosyası bu yolu referans alır):
cd /opt/update_manager
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip3 install -r requirements.txt
--system-site-packagesbayrağı zorunludur — aksi halde venv içinden sisteminpython3-aptpaketine erişilemez.
ln -s /opt/update_manager/conf/update_manager.service /etc/systemd/system
systemctl daemon-reload
systemctl enable --now update_managerServis başlarken sırasıyla:
db/klasörünü oluşturur,makemigrationsvemigratekomutlarını otomatik çalıştırır (veritabanı şeması ilk açılışta kendiliğinden kurulur),manage.py runserver 0.0.0.0:8001ile sunucuyu ayağa kaldırır.
Durumu kontrol etmek için:
systemctl status update_manager
journalctl -u update_manager -fİlk kurulumda otomatik oluşturulan yönetici hesabının bilgileri bu logda bir kereliğine basılır (bkz. Notlar).
Uygulamanın tüm statik yapılandırması tek bir yerde, conf/static_conf.py içindeki StaticConfig sınıfında toplanmıştır:
| Alan | Açıklama |
|---|---|
WATCH_PACKAGES |
İzlenecek paketler ve güncellemenin gerektirdiği aksiyon. Değerler "REBOOT", "RESTART:servis1,servis2", "SYSTEM" veya tanımsızsa "NONE" olabilir. Bir paketin bağımlılıkları da otomatik olarak taranır ve listeye "dependency" kaynağıyla eklenir. Sözlük boş bırakılırsa ({}), whitelist devre dışı kalır ve sistemdeki tüm kurulu/güncellenebilir paketler (aksiyon NONE olarak) listelenir. |
SRV_BIND_IP / SRV_PORT |
Sunucunun dinleyeceği adres/port (varsayılan 0.0.0.0:8001). Port değiştirilecekse buradaki değerle birlikte conf/update_manager.service dosyasındaki ExecStart satırı da güncellenmelidir. |
SRV_LOG_FILE |
Log dosyası yolu (varsayılan /var/log/umng.log). |
SRV_LOG_MAX_B / SRV_LOG_BACKUP |
Log rotasyon boyutu ve saklanacak yedek sayısı. |
DEF_SRV_INFO |
HTTP yanıtlarındaki Server header değeri. |
Yeni bir kritik paket eklemek veya bir paketin aksiyonunu değiştirmek istediğinizde tek yapmanız gereken WATCH_PACKAGES sözlüğünü düzenlemektir.
| Ayar | Açıklama |
|---|---|
UMNG_SECRET_KEY (ortam değişkeni) |
Django SECRET_KEY değeri; ayarlanmazsa kod içindeki geliştirme amaçlı sabit değer kullanılır. |
ALLOWED_HOSTS |
Şu an ["*"] — bkz. Güvenlik Önerileri. |
SESSION_COOKIE_AGE |
Oturum süresi, saniye cinsinden (varsayılan 900 → 15 dakika). |
DATABASES |
SQLite, db/umng_db.sqlite3 yolunda. |
- Otomatik admin hesabı: İlk
migrateçalıştığında, veritabanında hiç kullanıcı yoksaum_adminadında rastgele şifreli bir superuser otomatik oluşturulur (apps/umng/apps.py). Şifre yalnızca o an konsola/journalctl'a yazılır, bir daha gösterilmez — kaybedersenizmanage.py changepassword um_adminile sıfırlayabilirsiniz. - Otomatik tarama: Sunucu her açıldığında ve her başarılı girişten sonra arka planda otomatik bir
apt updatetaraması tetiklenir; ayrıca arayüzdeki "APT Güncelleme" butonuyla manuel de tetiklenebilir. - Loglama: Tüm loglar hem konsola hem de
SRV_LOG_FILEyoluna (rotate edilerek) yazılır. - Veritabanı: Paket durumları her taramada silinip yeniden yazılır (
PackageRecord); geçmiş tarama sonuçlarıAptUpdateStateLogtablosunda tutulur. - Boş
WATCH_PACKAGES:conf/static_conf.pyiçindekiWATCH_PACKAGESsözlüğü boş bırakılırsa uygulama whitelist moduna değil, "tümünü izle" moduna geçer — sistemdeki güncellenebilir tüm kurulu paketleri listeler. Bu paketler için özel bir reboot/restart kuralı tanımlı olmadığından hepsiNONEaksiyonuyla gösterilir; tek tık güncelleme bu modda da çalışır.
Bu servis root yetkisiyle çalışır ve apt-get install tetikleyebilir — bu yüzden aşağıdaki noktalara özellikle dikkat edin:
UMNG_SECRET_KEYortam değişkenini production'da mutlaka kendi belirlediğiniz rastgele bir değerle ayarlayın; kod içindeki varsayılan değeri kullanmayın.DEBUGayarı şu anumng_settings.pyiçinde sabitTrue— canlı ortamdaFalseyapılması ve hata sayfalarının dışarı sızdırılmaması önerilir.ALLOWED_HOSTSdeğerini["*"]yerine gerçek hostname/IP adresinizle sınırlandırın.- Uygulama düz HTTP (
runserver) üzerinden çalışır; internete açık ortamlarda mutlaka bir reverse proxy (nginx/caddy) + TLS arkasına alın, doğrudan dışa açmayın. - İlk kurulumda oluşturulan
um_adminşifresini güvenli bir yere kaydedin ve mümkünse ilk girişten sonra değiştirin. WATCH_PACKAGESlistesini kendi ortamınıza göre gözden geçirin; unutulan kritik bir paket, sessizce eksik kalan bir güvenlik yaması anlamına gelebilir.- Panele erişimi yalnızca güvendiğiniz kullanıcılarla/ağlarla sınırlı tutun; bu araç sistem düzeyinde değişiklik yapabilme yetkisine sahiptir.
Bu proje kişisel/dahili kullanım için ücretsizdir; değiştirme ve dağıtım hakları saklıdır. Ayrıntılar için LICENSE.md dosyasına bakın.