GithubHelp home page GithubHelp logo

lyrl / meli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from getmeli/meli

0.0 1.0 0.0 497 KB

License: Other

Shell 0.55% JavaScript 2.05% Dockerfile 0.26% TypeScript 94.69% Handlebars 0.04% HTML 2.42%

meli's Introduction

meli-logo

meli

Open source platform for deploying static sites and frontend applications.

Docs (proudly hosted on Meli !) - Twitter

Meli demo screenshot

How it works

  1. Sign-in and create your organization
  2. Create a site in your dashboard, say my-site
  3. Upload a release with the @getmeli/meli CLI
  4. Setup my-domain.com to point to your Meli server at my-site.mymeli.com

Features

  • Deploy unlimited static sites under a primary domain
  • Unlimited organizations, teams, users and sites
  • Seamless custom domains redirection
  • Automatic HTTPs certificate issuing with letsencrypt (or private ACME server)
  • Primary releases and branch (preview) releases
  • API with fully configurable scopes
  • Webhooks
  • Integrations (Slack, Mattermost, Email)
  • Easily deploy and upgrade with Docker Compose
  • Password protected pages
  • Get deploy URL in pull requests and commit status
  • Increase test coverage
  • API documentation
  • Documentation
  • Build an official project website
  • Create a community discussion branch
  • Deploy a cloud version
  • Translations
  • Extend integrations
  • Accessibility

Development

Start UI

  1. Clone the UI repo.
  2. npm i && npm start
  3. The app is accessible from http://localhost:3001, but we develop from http://localhost:80 (see below)

Start Caddy and the API

  1. Run docker-compose -f ./docker-compose-dev.yml up -d
  2. Configure your .env (copy .env.example to start with)
  3. Run npm i && npm start

If you develop with the UI, you'll need to clone the UI repo, then start it.

You can now browse at http://localhost:80:

  • http://localhost:80/ => UI
  • http://localhost:80/api, http://localhost:80/auth and http://localhost:80/socket.io => API
  • http://loopback.sh => your sites will be served here

DNS config

You need to configure your machine to allow wildcard domains for development. We've got a few ways to do this.

Use loopback.sh

We've configured loopback.sh to point to 127.0.0.1, so you can develop with it. Update your .env.

MELI_SITES_URL=loopback.sh

Your sites will be served at *.loopback.sh.

Pros: simple, no config required Cons: you need to be connected to the internet

Using /etc/hosts

Unfortunately, /etc/hosts doesn't support wildcard domains, so you'll need to edit /etc/hosts for every site added to Meli:

127.0.0.1 my-site.test
127.0.0.1 my-channel.my-site.test

Pros: simple, can develop without internet Cons: have to reconfigure every time you add a site

Using dnsmasq

brew install dnsmasq

# tell dsnmasq to point *.test to 127.0.0.1
echo "address=/test/127.0.0.1" > /usr/local/etc/dnsmasq.conf

# start daemon
brew services start dnsmasq

# make OSX point to dnsmasq
sudo mkdir -p /etc/resolver

# tell os x to point *.test to 127.0.0.1
sudo echo "nameserver 127.0.0.1" > /etc/resolver/test

ping hello.test

Your sites will be served at *.test.

Pros: you don't need to be connected to the internet, no need to reconfigure /etc/hosts Cons: a bit complex, config required

meli's People

Contributors

semantic-release-bot avatar gempain avatar pimartin avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.