npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@marathonhq/marathon

v1.0.0

Published

Enterprise Grade User Management System

Downloads

18

Readme

Marathon

Painless User Management

CircleCI

Visit trymarathon.com/learn to get started.

What is Marathon?

User Management is a wheel that has been reinvented again and again, from platform to platform, across thousands of projects. However, there are tons of principles and rules that are consistent and could be standardized. What if the next project you are tasked with won't require you to redo the user management paradigm, but instead, install it like with any other server dependency you have.

Marathon is an open source software that bootstraps standard User Management paradigms that can be deployed to any infrastructure.

Vision

Marathon aims to be the de-facto user management system that developers can deploy and forget with considerations on being agnostic, extensible, secure, simple, and familiar while also providing a way to "exit" and avoid lock-in.

Roadmap

Marathon's Public Roadmap is available to everyone's suggestion and contribution. Please create a Github Issue with the enhancement label so I can review it and add it to the roadmap.

Status

Marathon is currently in development and not in a stable state. It is not recommended to use Marathon in production at the moment. Development started in February 2019.

Installation and Setup

Quick Start

Install the Marathon CLI.

via NPM

npm install -g marathon-cli

via Brew

brew install marathon-cli

Run the Marathon installation script via the create command:

$ marathon-cli create project-name --env=development

After installation has finished, navigate to http://localhost:41140 and complete the set up process via the Installation UI.

If you do not want to use the installation UI, you can create an installation configuration instead.

via docker-compose

If you want to run Marathon via or docker-compose, you can fetch the relevant docker files within /install/docker and run:

$ docker-compose --file install/docker/docker-compose.yml up --detach

The resulting image that will run will have all the plugins and services loaded and db migrations migrated. If you wish to customize the installation, check out how to Configure Marathon.

Migration

The installation command should migrate into your selected database. If you would like to run it manually, use the following command:

$ marathon-cli migrate project-name --env=development

Documentation

Development Decisions

...

Terms

  • Services - HTTP facing services
    • Controllers - Serialization, Validation, and generic HTTP methods
    • Middlewares - Service specific http middlewares
    • Repositories - Business Domain Logic
    • Schema - Validate against incoming requests and outgoing responses
  • Plugins - Feature enhancements hooked via the event system and http lifecycle
  • Database/Models - DB Convenience methods
  • Database/Schema - Schema when inserting information to the database

Why not use Typescript/Flow?

I want to allow modification that is not hindered by the additional effort of learning a typed language. However, the codebase is littered with type definitions to allow for a simpler developer experience.

Why is this a Monolith?

The focus of the system is to bootstrap a user management system with a reasonable amount of time for setup and maintenance. Having a monolith answers this initial requirement. However, the system can be configured to run specific services separately. Learn more about Deployment here.

Have Issues?

Please create a Github Issue so I can review and add it to succeeding versions. Please make sure to follow the issue template.

FAQ

No. At the moment, please use Marathon as a playground and development test bed. A stable release will come in June 2019.

Yes, and no. Marathon only aims to be a user management system that any system can rely and extend from. The data stored by Marathon is owned by the developer/company that installed and maintains the Marathon instance.

Security still relies on the developer's/company's discretion. Standard security practices apply when deploying this software to production.

Marathon conveniently provides away to "eject" from the system. You can run marathon-cli eject 10.0.0.1 to download a snapshot of the current database. See the Eject command from the CLI to know more.

Yes! The MIT license permits you to do so. But Please remember to give credit to the original source code.

I am looking into creating managed instances for Marathon with simple pricing. Stay tuned for more information.

At the moment, Marathon holds none. Once I provide service via managed instances, we will make this as a hard requirement.

At the moment, you can email [email protected] directly for support. Allow a day or two for a response. Else, please proceed to Github Issue and submit an issue there. Please make sure to follow the issue template.

Yes! I highly appreciate it. Send me an email and I'll send you my Paypal Account.

Contributing

If you wish to contribute to the core code, please see CONTRIBUTING.md.

License

Licensed under MIT, see the LICENSE file.