Open source platform for deploying static sites and frontend applications.
Found a security issue ? Please let us know !
Docs: https://docs.meli.sh
- Sign-in and create your organization
- Create a site in your dashboard, say
my-site
- Upload a release with the
meli
CLI - Setup
my-domain.com
to point tomy-site.meli.sh
- 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
- Clone the UI repo.
npm i && npm start
- The app is accessible from http://localhost:3001, but we develop from http://localhost:80 (see below)
- Run
docker-compose -f ./docker-compose-dev.yml up -d
- Configure your
.env
(copy.env.example
to start with) - Run
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/
=> UIhttp://localhost:80/api
,http://localhost:80/auth
andhttp://localhost:80/socket.io
=> APIhttp://loopback.sh
=> your sites will be served here
You need to configure your machine to allow wildcard domains for development. We've got a few ways to do this.
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
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
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
Use mkcert
to generate a certificate and key:
brew install mkcert nss
mkcert -install
mkcert loopback.sh
then update your .env
with:
MELI_SSL_KEY=localhost-key.pem
MELI_SSL_CERT=localhost.pem
TODO see how to configure Caddy to use these files