oDinZu WenKi cfab45ab1c fix typos
2024-01-21 23:12:24 -05:00
2024-01-14 23:38:48 -05:00
2024-01-18 18:30:37 -05:00
2024-01-21 18:40:38 -05:00
LLC
2024-01-18 22:03:55 -05:00
LLC
2024-01-18 22:03:55 -05:00
2024-01-21 23:12:24 -05:00

A Drogon CMS built with C, Drogon, CMake, Adwaita and GTK4.

This is a Drogon Content Management System(CMS).

License

  • GPL-3.0

Features and Strengths

  • Faster than NginX, WordPress and Strapi
  • Built on CMake/C/C++/GTK4/Drogon
  • Built on Freedom Software
  • Blazing Fast Website Architecture
  • Headless CMS Ready for Site Generators
  • Lightweight Security with serverless architecture, plus optional proxy securities and caching.
  • Excellent Documentation

Community Plugins

  • Proxy/Local Caching Support
  • Website Builder
  • Website Preview/Drafts
  • WYSIWYG Editor
  • Image Gallery
  • ...

Benchmarks

An-toa test results of Drogon Server Only with 2 IO threads

wrk -c200 -d5 -t2 http://localhost:8848/hello
Running 5s test @ http://localhost:8848/hello
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.91ms  689.56us   7.56ms   72.86%
    Req/Sec    52.72k     3.50k   63.00k    71.00%
  524174 requests in 5.00s, 91.48MB read
Requests/sec: 104741.94
Transfer/sec:     18.28MB

An-toa test results of Drogon Server + Drogon Proxy with 2 IO threads

wrk -c200 -d5 -t2 http://localhost:8088/hello
Running 5s test @ http://localhost:8088/hello
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.95ms    0.94ms   8.80ms   67.84%
    Req/Sec    25.39k     3.15k   29.20k    84.00%
  252520 requests in 5.00s, 44.07MB read
Requests/sec:  50465.86
Transfer/sec:      8.81MB

oDinZu NodeJs Server Test with 2 IO threads

wrk -c200 -d5 -t2 http://localhost:3000
Running 5s test @ http://localhost:3000
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    51.58ms  159.51ms   1.43s    93.61%
    Req/Sec     7.56k     1.00k    8.24k    94.00%
  75277 requests in 5.01s, 11.56MB read
Requests/sec:  15033.66
Transfer/sec:      2.31MB

oDinZu Drogon Server Web Sockets with 2 IO threads

Running 5s test @ ws://localhost:8848/chat
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.70ms    9.94ms 258.14ms   99.17%
    Req/Sec    25.20k     2.14k   30.09k    82.00%
  250651 requests in 5.01s, 171.39MB read
  Non-2xx or 3xx responses: 250651
Requests/sec:  50056.01
Transfer/sec:     34.23MB

Development & Contributing

Developer Dependency Requirements

  • GCC (GNU C/C++ Compiler) >= 13.2.1
  • CMake >= 3.28
  • Drogon >= 1.9.1 [SEE REQUIREMENTS]
  • Pkg-Config >= 1.8.1
  • Gtk4 >= 4.0
  • Adwaita >= 1.3.5
  • OpenSSL >= 3.1.2
  • Optional PostgreSQL Database(Default) >= 2.39
  • Optional Cambalache >= 0.14 (Gtk4 Editor) [SEE REQUIREMENTS]
  • Optional Geany IDE >= 1.38
  • CLI Experience

Note: This has been built and tested on Arch Linux

Steps to Build DrogonCMS from Source Code

  1. Clone the repository git clone https://git.sharpetronics.com/sharpetronics/DrogonCMS and cd DrogonCMS/
  2. optional checkout correct branch e.g. git checkout drogonCMS-cmake
  3. Run cmake -D CMAKE_BUILD_TYPE=Release .
  4. Then, to build the executable, we do cmake --build .
  5. Run the app with ./DrogonCMS

Requirements

Drogon framework compile/build dependencies.

Recommendations

A GTK4 editor is a recommended tool for this project; all UI's and project files .cmb are stored in ./src/ui/.

An optional recommendation is Geany IDE.

IDE build commands via Geany Build -> Set Build Commands

This is what my build commands look like in Geany IDE with GNU Automake Tools.

Name Command Working Directory
Configure ../configure /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build
AutoReconf autoreconf -vi /home/username/Desktop/Local-Development/cplusplus/drogon-dash
Make make /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build
Run ./drogon_dashboard /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build
Make Bins make dist /home/username/Desktop/Local-Development/cplusplus/drogon-dash/build

This is what my build commands look like in Geany IDE with BSD CMake Tools.

Name Command Working Directory
Configure cmake -D CMAKE_BUILD_TYPE=Release /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/
Build cmake --build . /home/username/Desktop/Local-Development/cplusplus/DrogonCMS
Run GUI ./DrogonCMS /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/
Run API ./local-drogon-server-api /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/vendors/drogon/local-api-server/
Install cmake --install /home/username/Desktop/Local-Development/cplusplus/DrogonCMS/

Authors

  • SharpeTronics, LLC
  • oDinZu WenKi(Charles)

Financial Support & Donations

oDinZu WenKi(Charles) https://liberapay.com/oDinZu/

  • Liberapay is a recurrent donations platform
  • Run by a non-profit organization
  • Source code is public
  • No commission fee
  • ~5% payment processing fee

Learning Resources

Notice: We focus implementation with the C programming language and only add various features of C ++ code.

Description
This is a Drogon Content Management System(CMS) built on GTK4.
https://drogoncms.com
Readme 9.4 MiB
Languages
CMake 51.1%
C 48.9%