diff --git a/README.md b/README.md index 10f7cc0..2a1d96f 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ Bu git deposu go dili ile yazılmış yeni ahenk arka yüzü ile ilgili kullanıcı, yönetici ve geliştirici dokümantasyonunu içermektedir. -Geliştiricilere yönelik dokümantasyon için [dev](dev/) dizinine gidebilirsiniz +- Sistem Yöneticilerine yönelik dökümantasyon için [admin](admin/) dizinine gidebilirsiniz. - \ No newline at end of file +- Geliştiricilere yönelik dokümantasyon için [dev](dev/) dizinine gidebilirsiniz. + + + + \ No newline at end of file diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 0000000..9bff036 --- /dev/null +++ b/admin/README.md @@ -0,0 +1,20 @@ +# Ahenk Dökümantasyon + +Bu dizinde Liderahenk'i kullanan kurum ve kuruluşlardaki sistem yöneticileri ve teknik personeller için faydalı olacak anlaşılması kolay dökümantasyonlar bulunmaktadır. Kurulum aşamaları, değişiklik günlüğü, sorun giderme, Sıkça sorulan sorular, yapılandırma ve güncelleme işlemleriniz için bu sayfadaki ilgili dökümantasyonları kullanabilirsiniz. Sorularınızı destek hattımızdan veya GitHub üzerinden Issue oluşturarak bize iletebilirsiniz. + + + +### Index +- [Liderahenk Projeleri nelerdir? Hangisini/Nasıl kullanmalıyım?](hakkinda.md) +- [Nasıl Kurulur](kurulum.md) +- [Kullanıcı Kaydetme](kullanici.md) +- [Yapılandırma İşlemleri](yapilandirma.md) +- [Sık Karşılaşılan Problemler ve Çözümleri](sorungiderme.md) +- [Güncelleme, Versiyon Kontolü ve Plugin Yükleme işlemleri](versiyon.md) +- [Değişim Günlüğü](changelog.md) + - *[detaylı geliştirici versiyonu](../dev/changelog.md)* +- [Çalışma Mekaniği ve Süreçleri](howto.md) + - *[detaylı geliştirici versiyonu](../dev/howto.md)* +- [Sıkça Sorulan Sorular](SSS.md) +- [Lider Dökümantasyonu](https://docs.liderahenk.org/lider3.0/) + - Eğer aradığınız işlem istemcileri değil de sunucuyu ilgilendiriyorsa lütfen ilgili dökümantasyonu referans alınız. diff --git a/admin/changelog.md b/admin/changelog.md new file mode 100644 index 0000000..c815c5a --- /dev/null +++ b/admin/changelog.md @@ -0,0 +1,2 @@ +# Ahenk Değişim Günlüğü +- Henüz stabil sürüm yayımlanmamıştır. [Geliştirici değişiklik günlüğü](../dev/changelog.md)ne göz atabilirsiniz \ No newline at end of file diff --git a/admin/howto.md b/admin/howto.md new file mode 100644 index 0000000..3844264 --- /dev/null +++ b/admin/howto.md @@ -0,0 +1,2 @@ +# Ahenk Çalışma Mekaniği ve Süreçleri +- Henüz stabil sürüm yayımlanmamıştır. [Geliştirici versiyonu](../dev/howto.md)na göz atabilirsiniz \ No newline at end of file diff --git a/dev/README.md b/dev/README.md index 258a323..19e556e 100644 --- a/dev/README.md +++ b/dev/README.md @@ -5,7 +5,11 @@ Bu dizinde Ahenk arka yüz geliştiricileri ve Ahenk eklenti geliştiricileri i ### Index -| Açıklama | Bağlantı | -| -------- | -------- | -| Tüm Kaynaklar ve Harici Bağlantılar | [resources.md](resources.md) | -| Geliştirici Ortamı ile ilgili Öneriler ve Notlar | [environment.md](environment.md) | \ No newline at end of file +- [Tüm Kaynaklar ve Harici Bağlantılar](resources.md) +- [Geliştirici Ortamının Kurulması ve Öneriler](environment.md) +- [Changelog](changelog.md) + - *[basitleştirilmiş admin versiyonu](../admin/changelog.md)* +- [Çalışma Mekaniği ve Süreçleri](howto.md) + - *[basitleştirilmiş admin versiyonu](../admin/howto.md)* +- [Geliştirici Günlükleri (gayriresmi)](./dev-notes/) +- [Ahenk Python Dökümantasyonu](https://github.com/Pardus-LiderAhenk/lider-ahenk-docs/tree/docs-1.0/docs/developers/ahenk) \ No newline at end of file diff --git a/dev/changelog.md b/dev/changelog.md new file mode 100644 index 0000000..38b5704 --- /dev/null +++ b/dev/changelog.md @@ -0,0 +1,26 @@ +# Ahenk Go Changelog +newest from bottom to top + +## NEXT +- plugin/resources: Implement ResourceUsage() + +### Geliştirme Sürümü 0.0.1 (Dev-0.0.1-1) + +- plugin/resources: get memory usage + +#### Initial Development Tree: +- main executable file: ahenk-go/cmd/ahenk-go/ + - main.go: arguman handling, starting daemon, calling PluginManager + - plugin-manager.go: running plugins, handling plugin outputs and sending Lider (TODO) + - plugin-opener.go: connecting plugins to main program with looking for public symbols +- debian + - ahenk-go.service: Systemd service file + - changelog: debian release changelog + - control/copyright/rules: for deb packaging +- pkg + - osinfo: fetch information about os. Disks, memory etc. Frequently using in plugin/resources + - utils: variety of utilities +- plugins + - resources: returns resource usage and machine information to plugin manager + - this plugin can be seen as *plugin/resources*, *plugins/resources* or *resource usage plugin* + diff --git a/dev/dev-notes/README.md b/dev/dev-notes/README.md index a5809bc..3fa91c0 100644 --- a/dev/dev-notes/README.md +++ b/dev/dev-notes/README.md @@ -3,4 +3,4 @@ Bu dizin ahenk-go üzerinde veya benzer projeler üzerinde çalışacak yeni gel | Geliştiriciler | Görevi | Görev Süresi | Notlar | | -------------- | ------ | ------------ | ------ | -| Aliberk Sandıkçı | Stajyer | 6 Temmuz - 30 Ağustos | [asandikci.md](asandikci.md) | \ No newline at end of file +| Aliberk Sandıkçı | Stajyer | 6 Temmuz - 31 Ağustos | [asandikci.md](asandikci.md) | \ No newline at end of file diff --git a/dev/dev-notes/asandikci.md b/dev/dev-notes/asandikci.md index bf2ca6c..6c96490 100644 --- a/dev/dev-notes/asandikci.md +++ b/dev/dev-notes/asandikci.md @@ -28,7 +28,7 @@ Yazılım geliştirme konusunda uzman olmadığımdan, go dilini daha önce kull - Deb packaging - Deb dosyasının temel bileşenleri - Deb dosyası oluşturmak için kullanılan komutlar (dh-make, dh-make-golang, gbp) - - Makefile (TODO) + - Makefile - Bash Script - Aynı zamanda bazı processleri otomatikleştirmek için hazırladığım bash scriptleri sayesinde bash dilinde de gelişme katettim. @@ -70,7 +70,8 @@ Yazılım geliştirme konusunda uzman olmadığımdan, go dilini daha önce kull #### Yedinci Hafta (21-27 Ağustos 2023) - Makefile yapısını anladım ve daha kolay kurulum/build/silme işlemleri için oluşturdum -- Go Plugin yapısını araştırdım ve implemente etmeye başladım (TODO) -- Resource Usage plugin'ini kodladım (TODO) +- Dökümantasyonları güncelledim +- Go Plugin yapısını implemente etmeye başladım +- Resource Usage plugin'ini kodladım diff --git a/dev/environment.md b/dev/environment.md index c3c1c8d..4aad164 100644 --- a/dev/environment.md +++ b/dev/environment.md @@ -1,4 +1,4 @@ -### Development Environment - Geliştirici Ortamı +## Development Environment - Geliştirici Ortamı Geliştirme sürecinin sürekliliği ve bütünlüğü için: - Önerilen IDE'ler: @@ -21,4 +21,18 @@ Geliştirme sürecinin sürekliliği ve bütünlüğü için: - 1 adet Pardus + ahenk-go (Sanal/Fiziksel/Docker) - 1 adet Windows + ahenk-go (Sanal/Fiziksel) - 1 adet Debian + ahenk-go (Docker, .deb build için) - - 1 adet Pardus + [ahenk](https://github.com/pardus-liderahenk/ahenk) (python) (Sanal, `opsiyonel`) \ No newline at end of file + - 1 adet Pardus + [ahenk](https://github.com/pardus-liderahenk/ahenk) (python) (Sanal, `opsiyonel`) + +### Creating Docker Development Environment +1. Install and Create docker environment, [Quick Start](https://sulincix.github.io/sayfalar/html/docker-kullanimi.html) +2. Pull docker image +```sh +docker pull asandikci/godeb +``` +> Or alternatively build Dockerfile with `docker build -t godeb:latest` code for lower data usage + +3. Create container from image and attach to container, an example: +```sh +docker run -it -d --name build1 asandikci/godeb:latest "bin/bash" +docker attach build1 --detach-keys "ctrl-k" +``` \ No newline at end of file diff --git a/dev/howto.md b/dev/howto.md new file mode 100644 index 0000000..48790c4 --- /dev/null +++ b/dev/howto.md @@ -0,0 +1,17 @@ +# Ahenk Çalışma Mekaniği ve Süreçleri - DEV + +Henüz ilk kurulum, kullanıcı ilk girişi, normal giriş ve politika değişikliği için ayrı çalışma mekanikleri implemente edilmemiştir. Edildikten sonra bu mekaniklerin de çalışma şekillerini buraya ekle. TODO + +Latest Update: with Version Dev-0.0.1-1 + +- **Sistem Ile Başlama, Süreç:** + - Ahenk daemon olarak sistem ile başlar (sadece systemd ile uyumlu) + - /usr/bin/ahenk-go (ahenk-go/cmd/ahenk-go) + - ana kod bloğu (ahenk-go/cmd/ahenk-go/main.go) Plugin Manager'i başlatır (./plugin-manager.go) + - plugin-manager.go, plugin-opener.go'yu çağırır ve tek tek pluginleri ana koda bağlar, sonrasında bunları kullanır ve gerekli çıktılarını handle eder. (ve Lider'e gönderir TODO) + - Şu anki implementasyonda her 30 saniyede bir log dosyasına plugin/resources > AhenkInfo() yazdırır. + +- **Argümanlar:** + - nodaemon ve tmptest argümanları ile test amaçlı çağırılabilir. nodaemon ile çağrıldığı zaman log file'ı yine bağlar. Tmptest log file'ı bağlamaz, kodun geri kalanını çalıştırır (veya test amaçlı geçici olarak belirli kod parçalarına atlayabilir). + - start: daemon'u başlatır, kendini forklayıp ana process'ten çıkış yapar. (systemd > forking). forklana process parent process'i olmadığı için init sistemin altına atılır ve grup lideri olur. Pid file ve log file'ı otomatik olarak bağlar. Pid file kullandığı için hâlihazırda arkada çalışan bir daemon varken bu argümanın çağrılması kodu çalıştırmayacaktır. error verip çıkacaktır (yeni process, hâlihazırdaki çalışmaya devam eder) + - stop, restart: şu anda ikisi de aynı işlevi görmekte. Çünkü systemd, harici durdurma işlemlerinde daemon'u otomatik olarak geri başlatır. Dolayısı ile iki argüman da restart etmek için kullanılır. Harici bir kod bloğu başlatıp pid file'a bakarak çalışan daemon'u signal ile kill eder (15=SIGTERM) \ No newline at end of file