Supabase - ~52K stars
- Designed explicitly as an open source firebase alternative
- Typescript based
- Docker support
Appwrite - ~32K stars
- Written in JavaScript and PHP
- Docker based
- Realtime support across all services
| # To be use with https://hub.docker.com/_/nginx or https://hub.docker.com/r/nginxinc/nginx-unprivileged | |
| # COPY this file to /etc/nginx/templates/default.conf.template | |
| # For env var substitution, see "Using environment variables in nginx configuration" at https://hub.docker.com/_/nginx | |
| # Example values: | |
| # environment: | |
| # - CACHE_FILES_PATH=/mnt/cache | |
| # - CACHE_FILES_MAX_SIZE=1g | |
| # - CACHE_MEMORY_SIZE=10m | |
| # - CACHE_VALID_TIME=1m |
| version: '3.5' | |
| services: | |
| proxy: | |
| image: traefik:v2.1 | |
| # The official v2.0 Traefik docker image | |
| container_name: proxy | |
| networks: | |
| - traefik | |
| ports: |
This is a short guide for those who want to set up a NGINX reverse proxy with SSL cert authentication. The basic idea is to create a private CA and emit certificates signed by it. Only browsers and/or devices with the certs signed by this CA will be granted access to resources behind the proxy.
There are a few examples of similar configurations on the web, but most use openssl directly. This gist uses Easy-RSA to simplify the task of creating and maintaining a private CA and certs to be distributed to clients.
Clone Easy-RSA 3:
| var offset = 0; | |
| var selection = window.getSelection(); | |
| var range = selection.getRangeAt(0); | |
| var start = range.startOffset; | |
| var end = range.endOffset; | |
| if ( selection.baseNode.parentNode.hasChildNodes() ) { | |
| for ( var i = 0 ; selection.baseNode.parentNode.childNodes.length > i ; i++ ) { | |
| var cnode = selection.baseNode.parentNode.childNodes[i]; | |
| if (cnode.nodeType == document.TEXT_NODE) { |