2024-01-19 00:42:45 -05:00
2024-01-14 23:38:48 -05:00
2024-01-18 18:37:44 -05:00
2024-01-18 18:30:37 -05:00
2024-01-19 00:42:45 -05:00
LLC
2024-01-18 22:03:55 -05:00
LLC
2024-01-18 22:03:55 -05:00
LLC
2024-01-18 22:03:55 -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

  • 2x-3x Faster than NginX or WordPress and Strapi
  • Built on CMake/C/C++/GTK4/Drogon
  • Plugin Built-in Proxy/Local Caching Support
  • Plugin Website Builder
  • Optional Community Support/Plugins
  • Plugin Website Preview/Drafts
  • Plugin WYSIWYG Editor
  • Plugin Image Gallery
  • 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

Benchmarks

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

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

Drogon Server + NginX Proxy with 2 IO threads

wrk -c200 -d5 -t2 http://localhost:8080/hello
Running 5s test @ http://localhost:8080/hello
  2 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    24.56ms  138.63ms   1.96s    96.95%
    Req/Sec    18.80k     2.73k   26.83k    86.27%
  190708 requests in 5.10s, 34.21MB read
  Socket errors: connect 0, read 11, write 0, timeout 51
  Non-2xx or 3xx responses: 166
Requests/sec:  37372.18
Transfer/sec:      6.70MB

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
  • Optional Cambalache >= 0.14 (Gtk4 Editor) [SEE REQUIREMENTS]
  • Optional Geany IDE
  • 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 ./DrogonCMS /home/username/Desktop/Local-Development/cplusplus/DrogonCMS
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%