AdminBro is an admin panel for apps written in node.js

Overview

Admin Bro

codecov Build Status

AdminBro is An automatic admin interface which can be plugged into your application. You, as a developer, provide database models (like posts, comments, stores, products or whatever else your application uses), and AdminBro generates UI which allows you (or other trusted users) to manage content.

Inspired by: django admin, rails admin and active admin.

How it looks

Example application

Check out the example application with mongodb and postgres models here:

https://admin-bro-example-app-staging.herokuapp.com/admin

Getting Started

OpenSource SoftwareBrothers community

What kind of problems it solves

So you have a working service built in Node.js. It uses (for example) Hapi.js for rendering a couple of REST routes and mongoose as the connector to the database.

Everything works fine, but now you would like to:

  • see all the data in the app,
  • perform custom business actions on objects in the database,
  • bootstrap the tables with the initial data,
  • build custom report pages,
  • allow other team members (not necessary programmers) to see what is going on in the application.

And all these cases can be solved by AdminBro. By adding couple of lines of code you have a running admin interface.

Features

  • CRUD any data in any resource
  • Custom actions
  • Form validation based on schema in your resources
  • Full featured dashboard with widgets
  • Custom resource decorators

Contribute

If you would like work on an admin-bro and develop new features - take a look at our dev repository: https://github.com/SoftwareBrothers/admin-bro-dev

You can find there instructions on how to run admin-bro for development.

License

AdminBro is Copyright © 2018 SoftwareBrothers.co. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About SoftwareBrothers.co

We’re an open, friendly team that helps clients from all over the world to transform their businesses and create astonishing products.

  • We are available for hire.
  • If you want to work for us - checkout the career page.
Comments
  • Invalid hook call on login page

    Invalid hook call on login page

    Describe the bug I'm getting the following error:

    (node:18527) UnhandledPromiseRejectionWarning: Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
    1. You might have mismatching versions of React and the renderer (such as React DOM)
    2. You might be breaking the Rules of Hooks
    3. You might have more than one copy of React in the same app
    See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
        at resolveDispatcher (/Users/david/workspace/dongwon-api/node_modules/react/cjs/react.development.js:1465:13)
        at Object.useState (/Users/david/workspace/dongwon-api/node_modules/react/cjs/react.development.js:1496:20)
        at ae (/Users/david/workspace/dongwon-api/node_modules/styled-components/dist/styled-components.cjs.js:1:13232)
        at processChild (/Users/david/workspace/dongwon-api/node_modules/admin-bro/node_modules/react-dom/cjs/react-dom-server.node.development.js:3043:14)
        at resolve (/Users/david/workspace/dongwon-api/node_modules/admin-bro/node_modules/react-dom/cjs/react-dom-server.node.development.js:2960:5)
        at ReactDOMServerRenderer.render (/Users/david/workspace/dongwon-api/node_modules/admin-bro/node_modules/react-dom/cjs/react-dom-server.node.development.js:3435:22)
        at ReactDOMServerRenderer.read (/Users/david/workspace/dongwon-api/node_modules/admin-bro/node_modules/react-dom/cjs/react-dom-server.node.development.js:3373:29)
        at renderToString (/Users/david/workspace/dongwon-api/node_modules/admin-bro/node_modules/react-dom/cjs/react-dom-server.node.development.js:3988:27)
        at html (/Users/david/workspace/dongwon-api/node_modules/admin-bro/lib/frontend/login-template.js:73:53)
        at processTicksAndRejections (internal/process/task_queues.js:94:5)
        at async /Users/david/workspace/dongwon-api/node_modules/@admin-bro/express/lib/authentication/login.handler.js:19:23
    

    Installed libraries and their versions

    To Reproduce Steps to reproduce the behavior:

    1. Use buildAuthenticatedRouter to create AdminBro router.
    2. Run the app & visit /admin

    Additional context There's a closed issue about this matter, but I was not able to resolve this problem after removing node_modules or by adding react & react-dom as dependencies.

    opened by ItsYou 25
  • Component1 is not defined

    Component1 is not defined

    I'm attempting to render a property with a custom component, but it won't work and the console is showing me this error:

    components.bundle.js:9 Uncaught ReferenceError: Component1 is not defined at components.bundle.js:9

    I literally copy pasted the example from the docs to make sure i wasn't doing anything wrong, but it doesn't work.

    Also I've seen that some places in the docs you use components: {} instead of component: {}

    This is how im trying to do it: { resource: Voyage, options: { properties: { status: { component: { list: AdminBro.require('./city-content-in-list'), }, }, }, }, },

    the component is a copy paste of your example in the docs.

    What confuses me is that in your repo admin-bro-example-app you add a custom component to the article field, but you apply the component like this:

    properties: { _id: { isVisible: false }, content: { type: 'richtext', }, published: { label: 'Published (custom render)', components: { list: AdminBro.require('../components/article-in-list') } } } What's the difference between those two? If i use components i get another error (Invariant Violation: Element type is invalid) apparently it got undefined?

    Anyway i just dont understand why it doesn't work when I've followed the docs closely!

    opened by Diktat0ren 25
  • NoResourceAdapterError: There are no adapters supporting one of the resource you provided

    NoResourceAdapterError: There are no adapters supporting one of the resource you provided

    Describe the bug when I try to set up AdminBro for Nest.js + typeorm I am getting the next error: UnhandledPromiseRejectionWarning: NoResourceAdapterError: There are no adapters supporting one of the resource you provided.

    Installed libraries and their versions "admin-bro": "^3.3.1", "admin-bro-expressjs": "^2.1.1", "admin-bro-typeorm": "^0.1.6-alpha.9", "express": "^4.17.1", "express-formidable": "^1.2.0", "@nestjs/common": "7.0.0", "@nestjs/core": "7.0.0", "@nestjs/platform-express": "7.0.0", "@nestjs/typeorm": "7.0.0",

    To Reproduce Steps to reproduce the behavior: Create base nest.js application and put next: main.ts

    async function bootstrap() {
      const app = await NestFactory.create(AppModule);
      await setupAdminPanel(app);
      await app.listen(3000);
    }
    bootstrap();
    

    token.entity.ts simple implementation

    import AdminBro from "admin-bro";
    import { Database, Resource } from '@admin-bro/typeorm';
    import { validate } from 'class-validator'
    
    AdminBro.registerAdapter({ Database, Resource });
    Resource.validate = validate;
    
    @Entity('token')
    export class TokenEntity extends BaseEntity {
      @Column({ type: 'varchar' })
      accessToken: string;
    }
    

    Expected behavior Start server properly

    Screenshots Screenshot 2020-11-06 at 10 43 04

    AdminBroOptions with schema

    import { INestApplication } from '@nestjs/common';
    import AdminBro from 'admin-bro';
    import * as AdminBroExpress from 'admin-bro-expressjs';
    import { BaseEntity } from '../shared';
    
    export async function setupAdminPanel(app: INestApplication): Promise<void> {
      const adminBro = new AdminBro({
        resources: [{ resource: TokenEntity, options: {} }],
        rootPath: '/admin',
      });
    
      const router = AdminBroExpress.buildRouter(adminBro);
      app.use(adminBro.options.rootPath, router);
    
    }
    

    Desktop:

    • OS: macOS Catalina v10.15.7

    Additional context If I set up empty resources: [], the Server and Admin panel start properly. Also, I tried to set up it by official documentation but I have the same error. Could you please, help me realize what is wrong?

    help wanted 
    opened by Volodymyr-Zhuravlov 24
  • NULL VALUE IN FORM DOESN'T UPDATE RECORDS

    NULL VALUE IN FORM DOESN'T UPDATE RECORDS

    Hi, I am using admin-bro-mongoose, with admin-bro.

    if I have one of the fields as null value in my form, on clicking save it just doesn't update the record and reloads the page @wojtek-krysiak

    debug 
    opened by divyansheccentric 22
  • Error on the login page using the latest version of admin-bro

    Error on the login page using the latest version of admin-bro

    Describe the bug I'm having an issue when trying to load the login page. On the server side I'm getting this error: `node:9956) UnhandledPromiseRejectionWarning: Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:

    1. You might have mismatching versions of React and the renderer (such as React DOM)
    2. You might be breaking the Rules of Hooks
    3. You might have more than one copy of React in the same app See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem. at resolveDispatcher (/home/tim/WebstormProjects/selkni/node_modules/admin-bro/node_modules/react/cjs/react.development.js:1465:13) at Object.useState (/home/tim/WebstormProjects/selkni/node_modules/admin-bro/node_modules/react/cjs/react.development.js:1496:20) at ae (/home/tim/WebstormProjects/selkni/node_modules/admin-bro/node_modules/styled-components/dist/styled-components.cjs.js:1:13232) at processChild (/home/tim/WebstormProjects/selkni/node_modules/react-dom/cjs/react-dom-server.node.development.js:3043:14) at resolve (/home/tim/WebstormProjects/selkni/node_modules/react-dom/cjs/react-dom-server.node.development.js:2960:5) at ReactDOMServerRenderer.render (/home/tim/WebstormProjects/selkni/node_modules/react-dom/cjs/react-dom-server.node.development.js:3435:22) at ReactDOMServerRenderer.read (/home/tim/WebstormProjects/selkni/node_modules/react-dom/cjs/react-dom-server.node.development.js:3373:29) at renderToString (/home/tim/WebstormProjects/selkni/node_modules/react-dom/cjs/react-dom-server.node.development.js:3988:27) at html (/home/tim/WebstormProjects/selkni/node_modules/admin-bro/lib/frontend/login-template.js:71:53) at processTicksAndRejections (internal/process/task_queues.js:93:5) (Use node --trace-warnings ... to show where the warning was created) (node:9956) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) `

    Installed libraries and their versions

    "@admin-bro/design-system": "^1.7.0",
    "@admin-bro/express": "^3.0.1",
    "@admin-bro/typeorm": "^1.3.0",
    "@admin-bro/upload": "^1.0.0",
    "react-dom": "=16.13.1",
    "admin-bro": "^3.3.1",
    
    opened by LahmerIlyas 21
  • Filters drawer - not working properly for boolean or enum values

    Filters drawer - not working properly for boolean or enum values

    Describe the bug

    1. UI bug - placeholder and selected value in dropdown is shifted up:
    Screenshot 2022-09-01 at 13 26 34 Screenshot 2022-09-01 at 13 26 58
    1. after applying by clicking on "Apply changes" button - list is filtered and you see it in url change, but when you open filters drawer again, it looks like nothing is selected: 1

    So to remove single filter you have to use "Reset" button to remove all filters or select some value in dropdown and fter that click on x to remove it and then "Apply changes".

    Installed libraries and their versions I attached examples above from your demo website. it shows Admin: 6.1.3 & App: 2.0.0. Same problem for [email protected] on my project. If it helps - on [email protected] it works as expected: 2

    To Reproduce Steps to reproduce the behavior:

    1. Open your demo website.
    2. Try to apply boolean or other dropdown filters.
    3. See that applied filters not processed properly on dropdowns in filters drawer.

    Expected behavior Applied filters should be visible in filters drawer.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information if relevant):

    • OS: macOS
    • Browser: any browser, testyed with:
      • Chrome Version 104.0.5112.101 (Official Build) (arm64),
      • Safari Version 15.6 (17613.3.9.1.5),
      • Firefox 103.0.2 (64-bit)
    bug 
    opened by rustemkk 20
  • Many to Many and translations ?

    Many to Many and translations ?

    admin bro looks great and is very promising, but i need 2 thing :

    1. how do I get CRUD interfaces for many to many associations ?
    2. how can i add i18n support ?

    here's my code : const adminBroRequire = require('admin-bro'); const adminBroExpressjs = require('admin-bro-expressjs'); const adminBroSequelize = require('admin-bro-sequelizejs');

    adminBroRequire.registerAdapter(adminBroSequelize); const db = require('./DB/models/models_DB_master'); const adminBro = new adminBroRequire({ databases: [db], rootPath: '/test', //... other adminBroOptions });

    const adminBroRouter = adminBroExpressjs.buildRouter(adminBro) app.use(adminBro.options.rootPath, adminBroRouter)

    opened by AmbroiseVuaridel 19
  • Arrays with nested schemas don't show the content

    Arrays with nested schemas don't show the content

    I think this is the only feature that is not implemented by admin-bro team. Adding this would make it a fully fledged admin panel tool.

    Does the Admin-bro team have a plan for adding that feature too ? thanks.

    opened by DyaryRaoof 19
  • storing problem with local upload feature

    storing problem with local upload feature

    Hello dear SoftwareBrothers,

    I have upgraded my Admin Bro to version 3 and set up file upload feature but when I would like to submit an article with a dropped image I get upload Errors. The same thing goes when I get back to the old version of admin bro and used the one that I wrote through components. I cannot figure out what's exactly going wrong.

    this is the error I get when I submit an article with Image.

    Screen Shot 1399-06-27 at 11 26 05

    My Blog js

    const AdminBro = require('admin-bro');
    const { Blog } = require('../../models/Blog');
    const { sort, timestamps } = require('../sort');
    const uploadFeature = require('@admin-bro/upload');
    
    
    
    /** @type {AdminBro.ResourceOptions} */
    const options = {
        sort,
        properties: {
            ...timestamps,
            slug: {
                position: 0,
            },
            description: {
                isVisible: { list: false, edit: true, filter: false, show: true },
                position: 1,
                components: {
                    edit: AdminBro.bundle('../components/custom-fonts.edit.tsx')
                }
            },
            tags: {
                isVisible: { list: false, edit: true, filter: true, show: true },
                position: 8
            },
            keywords: {
                isVisible: { list: false, edit: true, filter: true, show: true },
                position: 9,
                type: [String],
            },
            draftMode: {
                isVisible: { list: true, edit: true, filter: true, show: true }
            },
            _id: {
                isVisible: { list: false, edit: false, filter: false, show: false },
            },
        }
    };
    
    module.exports = {
        options,
        features: [
            uploadFeature({
                provider: { local: { bucket: 'public/uploads' } },
                properties: {
                    key: 'uploadedFile.path',
                    bucket: 'uploadedFile.folder',
                    mimeType: 'uploadedFile.type',
                    size: 'uploadedFile.size',
                    filename: 'uploadedFile.filename',
                    file: 'uploadFile',
                }
            })
        ],
        resource: Blog,
    };
    

    my app.js

    app.use('/uploads', express.static('uploads'));
    

    and I also made a directory by the name of upload on the root folder of my app.

    so thankful for supporting this amazing admin panel.

    opened by everythinginjs 16
  • Multi select dropdown for filters

    Multi select dropdown for filters

    Describe the problem feature solves Right now you can only select a single value to filter for in dropdowns.

    Describe the solution you'd like It would be good to be able to select multiple values.

    Describe alternatives you've considered Might be a duplicate of #438 ... ?

    Acceptance criteria Being able to select multiple values in filter dropdowns, and being able to filter by those.

    Now:

    image

    Enhancement:

    image

    opened by tomtastico 14
  • rename fields

    rename fields

    Is it possible to rename the fields of the displayed tables?

    Note: I would like to set special characters such as accents.

    Installed libraries and their versions. "admin-bro": "^2.9.0", "admin-bro-expressjs": "^2.1.1", "admin-bro-typeorm": "^0.1.6-alpha.9",

    Captura de Pantalla 2021-03-30 a la(s) 10 56 10 a  m Captura de Pantalla 2021-03-30 a la(s) 10 58 38 a  m
    opened by jhoriascos 14
  • Update dependencies

    Update dependencies

    Describe the problem feature solves The current version of react-select doesn't have the required prop available.

    Describe the solution you'd like Please update to the latest version https://github.com/JedWatson/react-select/releases

    Acceptance criteria

    • [ ] Update react-select
    opened by AshotN 0
  • make api client responses simple json

    make api client responses simple json

    Describe the problem feature solves

    currently the api returns an non-standard object:

    redirects.0._id: "63b063da2717f35fa82fa78a"
    redirects.0.code: "UL7H"
    redirects.0.redirectId: "63b063da2717f35fa82fa788"
    

    Describe the solution you'd like Return the same json we all know and love :)

    Describe alternatives you've considered N/A

    Acceptance criteria Return simple json

    opened by goldylucks 0
  • es6 imports from custom components instead of providing string

    es6 imports from custom components instead of providing string

    Describe the problem feature solves importing custom components by path collides with other building tools, such as nx for monorepos, which makes me have to do things like this:

    componentLoader.add(
        "LinkToBreatheAdmin",
        __dirname.includes("/dist/")
          ? __dirname.replace("/dist/", "/") + "/src/components/LinkToBreatheAdmin"
          : path.resolve(__dirname, "LinkToBreatheAdmin"),
      ),
    

    and it breaks the imports as well

    Describe the solution you'd like I'd like to simply do:

    import MyBaseComp from "./MyComp"
    export const componentLoader = new ComponentLoader()
    export const MyComp = componentLoader.add("MyComp", MyBaseComp)
    

    Describe alternatives you've considered Don't know really

    Acceptance criteria See above

    opened by goldylucks 0
  • chore(deps): bump flat from 4.1.1 to 5.0.1

    chore(deps): bump flat from 4.1.1 to 5.0.1

    Bumps flat from 4.1.1 to 5.0.1.

    Commits
    • f25d3a1 Release 5.0.1
    • 54cc7ad use standard formatting
    • 779816e drop dependencies
    • 2eea6d3 Bump lodash from 4.17.15 to 4.17.19
    • a61a554 Bump acorn from 7.1.0 to 7.4.0
    • 20ef0ef Fix prototype pollution on unflatten
    • e8fb281 Test prototype pollution on unflatten
    • 6e95c43 Add node 10 & 12 to travis config.
    • 38239cc Release 5.0.0
    • beaea9d Add tests around cli. Only show usage if on TTY & no argument, allow eaccess ...
    • 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
  • Add isNullable to BaseProperty

    Add isNullable to BaseProperty

    Describe the problem feature solves isRequired does not fully encapsulate whether a property can have the value of null

    Ideally, if isNullable is implemented, the ability to set a field to null can be added as well.

    Describe the solution you'd like isNullable added to BaseProperty

    Acceptance criteria Add isNullable to BaseProperty

    opened by AshotN 0
Releases(v6.7.2)
Owner
Software Brothers
Software Brothers
A Node.js CMS written in CoffeeScript, with a user friendly backend

Nodizecms A Node.js CMS written in CoffeeScript, with a user friendly backend Status NodizeCMS is still under heavy development, there's a ton of unim

Nodize CMS 176 Sep 24, 2022
The most powerful headless CMS for Node.js — built with GraphQL and React

A scalable platform and CMS to build Node.js applications. schema => ({ GraphQL, AdminUI }) Keystone Next is a preview of the next major release of Ke

KeystoneJS 7.3k Dec 31, 2022
Reaction is an API-first, headless commerce platform built using Node.js, React, GraphQL. Deployed via Docker and Kubernetes.

Reaction Commerce Reaction is a headless commerce platform built using Node.js, React, and GraphQL. It plays nicely with npm, Docker and Kubernetes. G

Reaction Commerce 11.9k Jan 3, 2023
👻 The #1 headless Node.js CMS for professional publishing

Ghost.org | Features | Showcase | Forum | Docs | Contributing | Twitter Love open source? We're hiring Node.js Engineers to work on Ghost full-time Th

Ghost 42.1k Jan 5, 2023
ApostropheCMS is a full-featured, open-source CMS built with Node.js that seeks to empower organizations by combining in-context editing and headless architecture in a full-stack JS environment.

ApostropheCMS ApostropheCMS is a full-featured, open source CMS built with Node.js that seeks to empower organizations by combining in-context editing

Apostrophe Technologies 3.9k Jan 4, 2023
We.js, extensible Node.js MVC framework - CLI

We.js ;) We.js is a extensible node.js MVC framework For information and documentation see: http://wejs.org This repository (wejs/we) have the We.js C

We.js 208 Nov 10, 2022
Javascript Content Management System running on Node.js

Cody CMS A Javascript Content Management System running on Node.js We finally took upon the task, we are happy to announce the transition to Express 4

Johan Coppieters 669 Oct 31, 2022
Business class content management for Node.js (plugins, server cluster management, data-driven pages)

PencilBlue A full featured Node.js CMS and blogging platform (plugins, server cluster management, data-driven pages) First and foremost: If at any poi

PencilBlue, LLC. 1.6k Dec 30, 2022
🚀 Open source Node.js Headless CMS to easily build customisable APIs

API creation made simple, secure and fast. The most advanced open-source headless CMS to build powerful APIs with no effort. Try live demo Strapi is a

strapi 50.8k Dec 27, 2022
👻 The #1 headless Node.js CMS for professional publishing

Ghost.org | Features | Showcase | Forum | Docs | Contributing | Twitter Love open source? We're hiring Node.js Engineers to work on Ghost full-time Th

Ghost 37k Apr 5, 2021
ApostropheCMS is a full-featured, open-source CMS built with Node.js that seeks to empower organizations by combining in-context editing and headless architecture in a full-stack JS environment.

ApostropheCMS ApostropheCMS is a full-featured, open source CMS built with Node.js that seeks to empower organizations by combining in-context editing

Apostrophe Technologies 3.9k Jan 4, 2023
Business class content management for Node.js (plugins, server cluster management, data-driven pages)

PencilBlue A full featured Node.js CMS and blogging platform (plugins, server cluster management, data-driven pages) First and foremost: If at any poi

PencilBlue, LLC. 1.6k Dec 30, 2022
Minimalistic, lean & mean, node.js cms

enduro.js Enduro is minimalistic, lean & mean, node.js cms. See more at enduro.js website Other repositories: Enduro • samples • Enduro admin • enduro

Martin Gottweis 688 Dec 31, 2022
We.js, extensible Node.js MVC framework - CLI

We.js ;) We.js is a extensible node.js MVC framework For information and documentation see: http://wejs.org This repository (wejs/we) have the We.js C

We.js 208 Nov 10, 2022
A Node.js Express backend for a Stackoverflow like answering forum, with RESTful endpoints

A Node.js Express backend for a Stackoverflow like answering forum, with RESTful endpoints, written in es6 style with linted and comprehensively unit-tested code. Utilizes a local json database using fs but has full separation of concern to implement anything else.

Dhiman Seal 3 Jan 9, 2022
基于vue3.0-ts-Element集成的简洁/实用后台模板!《带预览地址》vue-admin;vue+admin;vue-element;vue+element;vue后台管理;vue3.0-admin;vue3.0-element。

一、基于vue3.0+ts+Element通用后台admin模板 二、在线预览地址:http://admin.yknba.cn/ 三、下载使用: 1、克隆代码 通过git将代码克隆到本地;或者使用下载安装包模式进行下载。 2、进入目录 进入项目的根目录:vue3.0-ts-admin 3、安装依

null 64 Dec 16, 2022
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
Gatsby-Formik-contact-form-with-backend-panel - Full working contact form with backend GUI panel.

Gatsby minimal starter ?? Quick start Create a Gatsby site. Use the Gatsby CLI to create a new site, specifying the minimal starter. # create a new Ga

Bart 1 Jan 2, 2022
A modern client panel for the Pterodactyl® panel, made by Wrible Development.

Dashboardsy A modern client panel for the Pterodactyl® panel, made by Wrible Development. Support Discord: https://discord.gg/zVcDkSZNu7 Screenshots S

Wrible Development 23 Jan 1, 2023
DDG Email Panel is the open source unofficial DuckDuckGo Email Protection panel.

DDG Email Panel 简体中文 Open source unofficial DuckDuckGo Email Protection panel. ⭐ Features No need to install DuckDuckGo browser extension Supports all

Whatk 87 Dec 28, 2022