update dev and admin documentation

This commit is contained in:
Aliberk Sandıkçı 2023-08-24 21:06:25 +03:00
parent 9e0e3f04cd
commit 80104081d2
Signed by: asandikci
GPG key ID: 25C67A03B5666BC1
10 changed files with 102 additions and 12 deletions

View file

@ -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.
<!-- TODO Kullanıcı dokümantasyonu için [user](user/) dizinine veya https://docs.liderahenk.org/ahenk/user adresine, sunucu yöneticilerine yönelik hazırlanan dokümantasyon için [admin](admin/) dizinine veya https://docs.liderahenk.org/ahenk/admin adresine, geliştiricilere yönelik dokümantasyon için ise [dev](dev/) dizinine veya https://docs.liderahenk.org/ahenk/dev adresine gidebilirsiniz. -->
- Geliştiricilere yönelik dokümantasyon için [dev](dev/) dizinine gidebilirsiniz.
<!-- TODO Kullanıcı dokümantasyonu için [user](user/) dizinine veya https://docs.liderahenk.org/ahenk/user adresine, sunucu yöneticilerine yönelik hazırlanan dokümantasyon için [admin](admin/) dizinine veya https://docs.liderahenk.org/ahenk/admin adresine, geliştiricilere yönelik dokümantasyon için ise [dev](dev/) dizinine veya https://docs.liderahenk.org/ahenk/dev adresine gidebilirsiniz. -->
<!-- TODO See [en](en/) for English documentation or https://docs.liderahenk.org/ahenk/en -->

20
admin/README.md Normal file
View file

@ -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.
<!-- TODO Admin Dokümantasyonuna aynı zamanda https://docs.liderahenk.org/ahenk/admin adrisinden de ulaşabilirsiniz. -->
### Index
- [Liderahenk Projeleri nelerdir? Hangisini/Nasıl kullanmalıyım?](hakkinda.md) <!--TODO-->
- [Nasıl Kurulur](kurulum.md) <!--TODO-->
- [Kullanıcı Kaydetme](kullanici.md) <!--TODO-->
- [Yapılandırma İşlemleri](yapilandirma.md) <!--TODO-->
- [Sık Karşılaşılan Problemler ve Çözümleri](sorungiderme.md) <!--TODO-->
- [Güncelleme, Versiyon Kontolü ve Plugin Yükleme işlemleri](versiyon.md) <!--TODO-->
- [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) <!--TODO-->
- [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.

2
admin/changelog.md Normal file
View file

@ -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

2
admin/howto.md Normal file
View file

@ -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

View file

@ -5,7 +5,11 @@ Bu dizinde Ahenk arka yüz geliştiricileri ve Ahenk eklenti geliştiricileri i
<!-- TODO Geliştirici Dokümantasyonuna aynı zamanda https://docs.liderahenk.org/ahenk/dev adersinden de ulaşabilirsiniz. -->
### 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) |
- [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)

26
dev/changelog.md Normal file
View file

@ -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*

View file

@ -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ıı | Stajyer | 6 Temmuz - 30 Ağustos | [asandikci.md](asandikci.md) |
| Aliberk Sandıı | Stajyer | 6 Temmuz - 31 Ağustos | [asandikci.md](asandikci.md) |

View file

@ -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

View file

@ -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`)
- 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"
```

17
dev/howto.md Normal file
View file

@ -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)