Django Semantic UI admin theme

Overview

Django Semantic UI admin theme

django-semantic-admin

A completely free (MIT) Semantic UI admin theme for Django. Actually, this is my 3rd admin theme for Django. The first was forgettable, and the second was with Pure CSS. Pure CSS was great, but lacked JavaScript components.

Semantic UI looks professional, and has great JavaScript components.

Log in to the demo with username django and password semantic-admin: https://semantic-admin.com

Documentation is on GitHub Pages.

Why?

  • Looks professional, with a nice sidebar.
  • Responsive design, even tables can stack responsively on mobile.
  • JavaScript datepicker and timepicker components.
  • JavaScript selects, including multiple selections, which integrate well with Django autocomplete fields.
  • Semantic UI has libraries for React and Vue, in addition to jQuery. This means this package can be used to style the admin, and custom views can be added with React or Vue components with the same style.

Install

Install from PyPI:

pip install django-semantic-admin

Add to settings.py before django.contrib.admin:

INSTALLED_APPS = [
    "semantic_admin",
    "django.contrib.admin",
    ...
]

Usage

Instead of admin.ModelAdmin, admin.StackedInline, or admin.TabularInline:

class ExampleStackedInline(admin.StackedInline):
    pass

class ExampleTabularInline(admin.TabularInline):
    pass

class ExampleAdmin(admin.ModelAdmin):
    inlines = (ExampleStackedInline, ExampleTabularInline)

Inherit from their Semantic equivalents:

from semantic_admin import SemanticModelAdmin, SemanticStackedInline, SemanticTabularInline

class ExampleStackedInline(SemanticStackedInline):
    pass

class ExampleTabularInline(SemanticTabularInline):
    pass

class ExampleAdmin(SemanticModelAdmin):
    inlines = (ExampleStackedInline, ExampleTabularInline)

Awesome optional features

  1. Optional integration with django_filter:

django-filter

To enable this awesome feature, add filter_class to your Django admin:

from semantic_admin.filters import SemanticFilterSet

class DemoFilter(SemanticFilterSet):
    class Meta:
        model = Demo
        fields = ("demo_field",)

class DemoAdmin(SemanticModelAdmin):
    filter_class = DemoFilter
  1. HTML preview in Django autocomplete_fields:

html5-autocomplete

To enable this awesome feature, add the semantic_autocomplete property to your Django model:

class DemoModel(models.Model):
    @property
    def semantic_autocomplete(self):
        html = self.get_img()
        return format_html(html)

Contributing

Install dependencies with poetry install. The demo is built with invoke tasks. For example, cd demo; invoke build.

Notes

Please note, this package uses Fomantic UI the official community fork of Semantic UI.

Comments
  • How to show date picker (calendar)?

    How to show date picker (calendar)?

    I can't put calendar as example in https://semantic-admin.com at field birthdate. Is necessary an other action ?

    Other question, exists suports other languages like Pt-br on calendar?

    opened by Edilton 7
  • ⬆️ Bump django from 4.0.1 to 4.0.2

    ⬆️ Bump django from 4.0.1 to 4.0.2

    Bumps django from 4.0.1 to 4.0.2.

    Commits
    • b12be7a [4.0.x] Bumped version for 4.0.2 release.
    • f9c7d48 [4.0.x] Fixed CVE-2022-23833 -- Fixed DoS possiblity in file uploads.
    • 0142204 [4.0.x] Fixed CVE-2022-22818 -- Fixed possible XSS via {% debug %} template tag.
    • 6928227 [4.0.x] Fixed #33480 -- Fixed makemigrations crash when renaming field of ren...
    • aff79be [4.0.x] Fixed #33468 -- Fixed QuerySet.aggregate() after annotate() crash on ...
    • 7a1c653 [4.0.x] Updated translations from Transifex.
    • 9a9c5b4 [4.0.x] Fixed #33459 -- Clarified index type in full text search docs.
    • 7c2d4d9 [4.0.x] Fixed #33462 -- Fixed migration crash when altering type of primary k...
    • f4de870 [4.0.x] Fixed #33048 -- Doc'd that DEBUG static files requests don't use midd...
    • f82ca84 [4.0.x] Fixed #33407 -- Fixed .radiolist admin CSS.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Add `django-filter` to dependency list

    Add `django-filter` to dependency list

    Hi,

    I created a new Django project, installed django-semantic-admin and added it in INSTALLED_APPS as described in the README. On the first access to /admin a ModuleNotFoundError exception is raised:

    ModuleNotFoundError: No module named 'django_filters'
    

    As django-filter is used in two files (https://github.com/globophobe/django-semantic-admin/search?q=django_filters), I guess the library should be moved to Poetry's dependencies instead of dev-dependencies https://github.com/globophobe/django-semantic-admin/blob/3f71d25f4ed93894e5c610e9c6cb7d8b3e25fcb0/pyproject.toml#L29

    opened by vrialland 2
  • run project

    run project

    Please add README.md with installation steps.

    Is there any way to roll this repository to an empty Django project? And are there any requirements.

    Thank you for earlier )

    opened by InzGIBA 1
  • Version 0.3.7

    Version 0.3.7

    • Update packages
    • Dim page on pusher open
      • Closes https://github.com/globophobe/django-semantic-admin/issues/55
    • Show user/password in login error message
      • Suffices to close https://github.com/globophobe/django-semantic-admin/issues/61
    opened by globophobe 0
  • Version 0.3.6

    Version 0.3.6

    • Set demo user, pass in placeholder.
    • Use empty str on picture delete. Closes https://github.com/globophobe/django-semantic-admin/issues/59
    • Fix toggle target. Closes https://github.com/globophobe/django-semantic-admin/issues/58
    • Build with local egg. Closes https://github.com/globophobe/django-semantic-admin/issues/56
    opened by globophobe 0
  • Version 0.3.5

    Version 0.3.5

    • Update Fomantic UI v2.8.8
    • Correct readonly field height. Closes https://github.com/globophobe/django-semantic-admin/issues/47
    • Add get_filterset_class, supporting both filter_class and filterset_class. Closes https://github.com/globophobe/django-semantic-admin/issues/44
    • Removed minified JS. Closes https://github.com/globophobe/django-semantic-admin/issues/5
    • Add initial docs for customization
    opened by globophobe 0
  • Upgrade demo to django 4.1

    Upgrade demo to django 4.1

    • Unpin dev dependencies
    • Open first accordion by default. Closes https://github.com/globophobe/django-semantic-admin/issues/48
    • Adjust sidebar border. Closes https://github.com/globophobe/django-semantic-admin/issues/27
    opened by globophobe 0
  • ⬆️ Bump django from 4.0.4 to 4.0.6

    ⬆️ Bump django from 4.0.4 to 4.0.6

    Bumps django from 4.0.4 to 4.0.6.

    Commits
    • caad462 [4.0.x] Bumped version for 4.0.6 release.
    • c732152 [4.0.x] Updated man page for Django 4.0.6.
    • 0dc9c01 [4.0.x] Fixed CVE-2022-34265 -- Protected Trunc(kind)/Extract(lookup_name) ag...
    • a2b88d7 [4.0.x] Fixed typo in docs/topics/signals.txt.
    • 2b901c1 [4.0.x] Fixed GEOSTest.test_emptyCollections() on GEOS 3.8.0.
    • 4d20d2f [4.0.x] Fixed docs build with sphinxcontrib-spelling 7.5.0+.
    • 8a294ee [4.0.x] Added stub release notes and release date for 4.0.6 and 3.2.14.
    • 1c28443 [4.0.x] Fixed CoveringIndexTests.test_covering_partial_index() when DEFAULT_I...
    • 0f3b250 [4.0.x] Fixed #33789 -- Doc'd changes in quoting table/column names on Oracle...
    • 6661c48 [4.0.x] Updated OWASP Top 10 link in security topic.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • DRF filter is filterset_class

    DRF filter is filterset_class

    filter_class was used, but perhaps filterset_classis better as DRF is quite popular. Consider supporting both, with eventual filter_class deprecation

    Edit: DRF originally used filter_class

    opened by globophobe 0
  • ⬆️ Bump django from 4.0.2 to 4.0.4

    ⬆️ Bump django from 4.0.2 to 4.0.4

    Bumps django from 4.0.2 to 4.0.4.

    Commits
    • 89807fb [4.0.x] Bumped version for 4.0.4 release.
    • 00b0fc5 [4.0.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against...
    • 8008288 [4.0.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a...
    • 78e553b [4.0.x] Fixed #33628 -- Ignored directories with empty names in autoreloader ...
    • 7700084 [4.0.x] Added stub release notes and release date for 4.0.4, 3.2.13, and 2.2.28.
    • 5137416 [4.0.x] Fixed #32129 -- Adjusted the docs for session expiry helpers.
    • 7d540d6 [4.0.x] Fixed #33598 -- Reverted "Removed unnecessary reuse_with_filtered_rel...
    • f62816b [4.0.x] Updated Oracle docs links to Oracle 21c.
    • 0da9053 [4.0.x] Updated various links to HTTPS and new locations.
    • 7f69c0d [4.0.x] Corrected models.FileField signature in docs.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Update Fomantic UI v2.9

    Update Fomantic UI v2.9

    • Support file inputs https://fomantic-ui.com/elements/input.html#file-input
    • Consider supporting custom calendar formats https://fomantic-ui.com/modules/calendar.html#custom-format
    opened by globophobe 0
  • Document settings for form fields, and filters

    Document settings for form fields, and filters

    SEMANTIC_APP_LIST should also allow ordering of models within apps. Currently, only orders apps

    Edit: App list ordering documented in https://github.com/globophobe/django-semantic-admin/pull/54. Form fields and filters still require documentation

    opened by globophobe 0
Releases(v0.3.7)
  • v0.3.7(Dec 16, 2022)

    What's Changed

    • Version 0.3.7 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/62

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.6...v0.3.7

    Source code(tar.gz)
    Source code(zip)
  • v0.3.6(Nov 5, 2022)

    What's Changed

    • Version 0.3.6 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/60

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.5...v0.3.6

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(Sep 22, 2022)

    What's Changed

    • Version 0.3.5 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/54

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.4...v0.3.5

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Sep 21, 2022)

    What's Changed

    • Revert international datetime by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/53

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.3...v0.3.4

    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Sep 21, 2022)

    What's Changed

    • ⬆️ Bump django from 4.0.2 to 4.0.4 by @dependabot in https://github.com/globophobe/django-semantic-admin/pull/43
    • ⬆️ Bump django from 4.0.4 to 4.0.6 by @dependabot in https://github.com/globophobe/django-semantic-admin/pull/45
    • Update pkgs by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/46
    • Upgrade demo to django 4.1 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/50
    • Version 0.3.3 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/51

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.2...v0.3.3

    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Mar 12, 2022)

    What's Changed

    • Fix action button margin for computer by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/41
    • Downgrade demo django 3.2 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/42

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.1...v0.3.2

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Feb 11, 2022)

    What's Changed

    • Fix/action checkbox width by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/36
    • Fix action form on mobile by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/35
    • Update packages. by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/38

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.3.0...v0.3.1

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Jan 15, 2022)

    What's Changed

    • Add SEMANTIC_CALENDAR_OPTIONS setting by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/33

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.2.9...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.9(Jan 13, 2022)

    What's Changed

    • ⬆️ Bump pillow from 8.4.0 to 9.0.0 by @dependabot in https://github.com/globophobe/django-semantic-admin/pull/31
    • Release v0.2.9 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/32

    New Contributors

    • @dependabot made their first contribution in https://github.com/globophobe/django-semantic-admin/pull/31

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/v0.2.8...v0.2.9

    Source code(tar.gz)
    Source code(zip)
  • v0.2.8(Jan 12, 2022)

    What's Changed

    • Add Intl.DateTimeFormat to calendar by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/28
    • Adjust change list checkbox alignment by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/29

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/0.2.7...v0.2.8

    Source code(tar.gz)
    Source code(zip)
  • 0.2.7(Jan 9, 2022)

    What's Changed

    • Fix action checkbox for Django 4 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/21
    • Support calendar 18n by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/22
    • Update demo by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/24
    • Fix cloud run settings by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/25

    Full Changelog: https://github.com/globophobe/django-semantic-admin/compare/0.2.6...0.2.7

    Source code(tar.gz)
    Source code(zip)
  • 0.2.6(Dec 11, 2021)

    What's Changed

    • Add margin to popup by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/8
    • Add docs with mkdocs by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/10
    • Fix/demo password by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/13
    • Fix screenshot numbering by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/15
    • Feature/support django 4 by @globophobe in https://github.com/globophobe/django-semantic-admin/pull/17

    Full Changelog: https://github.com/globophobe/django-semantic-admin/commits/0.2.6

    Source code(tar.gz)
    Source code(zip)
Owner
Alex
Currently in Fintech. GSD with Python and JavaScript. 機械学習に興味があります。
Alex
Real-time monitor and web admin for Celery distributed task queue

Flower Flower is a web based tool for monitoring and administrating Celery clusters. Features Real-time monitoring using Celery Events Task progress a

Mher Movsisyan 5.5k Dec 28, 2022
Simple and extensible administrative interface framework for Flask

Flask-Admin The project was recently moved into its own organization. Please update your references to Flask-Admin 5.2k Dec 29, 2022

手部21个关键点检测,二维手势姿态,手势识别,pytorch,handpose

手部21个关键点检测,二维手势姿态,手势识别,pytorch,handpose

Eric.Lee 321 Dec 30, 2022
A high-level app and dashboarding solution for Python

Panel provides tools for easily composing widgets, plots, tables, and other viewable objects and controls into custom analysis tools, apps, and dashboards.

HoloViz 2.5k Jan 03, 2023
Extendable, adaptable rewrite of django.contrib.admin

django-admin2 One of the most useful parts of django.contrib.admin is the ability to configure various views that touch and alter data. django-admin2

Jazzband 1.2k Dec 29, 2022
The script that able to find admin panels

admin_panel_finder The script will try to request possible admin panels by reading possible admin panels url then report as 200 YES or 404 NO usage: p

E-Pegasus 3 Mar 09, 2022
A new style for Django admin

Djamin Djamin a new and clean styles for Django admin based in Google projects styles. Quick start Install djamin: pip install -e git://github.com/her

Herson Leite 236 Dec 15, 2022
PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

80 Dec 13, 2022
A modern Python package manager with PEP 582 support.

A modern Python package manager with PEP 582 support.

Python Development Master(PDM) 3.6k Jan 05, 2023
FLEX (Federated Learning EXchange,FLEX) protocol is a set of standardized federal learning agreements designed by Tongdun AI Research Group。

Click to view Chinese version FLEX (Federated Learning Exchange) protocol is a set of standardized federal learning agreements designed by Tongdun AI

同盾科技 50 Nov 29, 2022
EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

383 Jan 07, 2023
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Dec 31, 2022
"Log in as user" for the Django admin.

django-loginas About "Login as user" for the Django admin. loginas supports Python 3 only, as of version 0.4. If you're on 2, use 0.3.6. Installing dj

Stavros Korokithakis 326 Dec 03, 2022
A curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code.

A curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code

Louis-François Bouchard 2.9k Jan 08, 2023
BitcartCC is a platform for merchants, users and developers which offers easy setup and use.

BitcartCC is a platform for merchants, users and developers which offers easy setup and use.

BitcartCC 270 Jan 07, 2023
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Dec 29, 2022
Tornadmin is an admin site generation framework for Tornado web server.

Tornadmin is an admin site generation framework for Tornado web server.

Bharat Chauhan 0 Jan 10, 2022
GFPGAN is a blind face restoration algorithm towards real-world face images.

GFPGAN is a blind face restoration algorithm towards real-world face images.

Applied Research Center (ARC), Tencent PCG 25.6k Jan 04, 2023
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Dec 29, 2022
Ajenti Core and stock plugins

Ajenti is a Linux & BSD modular server admin panel. Ajenti 2 provides a new interface and a better architecture, developed with Python3 and AngularJS.

Ajenti Project 7k Jan 07, 2023