ServerKit is a network service runner. Author your services within discrete javascript files and use ServerKit to host them over http, websockets, amqp, and command line. ServerKit is a great tool for quickly developing versatile API servers and microservices.
Through configuration you can control every aspect of ServerKit. All configuration settings have sensible defaults which make sense for most situations. You need only customize ServerKit features that you need for your particular environment and project.
ServerKit can also generate a basic web user interface based on your services which allows you to quickly test your services. With user authentication and management built-in to ServerKit, you can also use it as a starting point for prototyping or as a full scale website.
Get started quickly without setting up a bunch of infrastructure first. Develop and debug your services using NodeJS and the @liquicode/serverkit
NPM library. All authentication and user management can be done in-memory so you don’t have to worry about setting up databases and code for all that. Even your own services can use ServerKit’s user-based storage system that has in-memory, file system, and MongoDB providers. When you are ready, deploy your services using dedicated database servers. It’s all controlled through configuration.
npm install --save @liquicode/serverkit
ServerKit bundles together a number of technologies that allow you to write services that work over the web (http), web sockets, message queues, and even the command line.
Transport Agnostic Services
Your services define functions and describe how how clients will call them. ServerKit manages the interactions needed to authenticate users, authorize function invocations, and transfer data between client and server. Your service functions are transport-agnostic and work across any ServerKit transport.
Dynamic Configuration System
ServerKit uses a number of well known and established libraries, such as ExpressJS. Each of these have a large number of features and complex configuration requirements. ServerKit bundles these libraries together and simplifies the configuration settings to cover most common scenarios. ServerKit also supply configuration settings through a set of json
files or directly within code.
ServerKit configuration settings have sensible defaults so you only need to customize the settings for features that you are using. All other ServerKit features will be disabled or work just fine using their given defaults. When you write your own services, you provide configuration blocks that ServerKit combines into it's master configuration document.
Special Folders
ServerKit uses a system of folders to be able to organize and locate services. All source code files, data files, etc. are expected to be under a single folder called the Application
folder. The Application
folder contains a number of sub-folders: Config
, Services
, and ~server-data
. Configuration information is read out of the Config
folder, services out of the Services
folder, etc. The ~server-data
folder is used to store any server generated files (such as a ViewCore
) and is also where any storage files are kept.
This approach makes it easier to: