Skip to content

Latest commit

 

History

History
76 lines (60 loc) · 1.3 KB

express.md

File metadata and controls

76 lines (60 loc) · 1.3 KB

[ Modified 2020.07.08 ]

Express

A simple static file / express api based generic application setup.

Make example app directories

$ mkdir -p ~/app/example/www
$ cd ~/app/example

Edit index.html

$ vim www/index.html
Hello!

Edit server.js

$ vim server.js

Create simple express application

let express = require('express')
let path = require('path')

let app = express()
app.use(express.static(path.join(__dirname,'www')))

app.all('/api',(req,res)=>{
	res.json(true)
	})

app.listen(3000,()=>{})

Init app

$ sudo docker run -it --rm -v $PWD:/usr/src/app -w /usr/src/app node npm init
$ sudo docker run -it --rm -v $PWD:/usr/src/app -w /usr/src/app node npm i -S express

Start app

$ sudo docker run -d --restart=always --name=example_app --network=master -v /home/pi/apps/example:/usr/src/app -w /usr/src/app node node server.js

Map app into your domain

$ cd ~
$ vim Caddyfile

Add this route to your domain

http://example.com {

	route /example* {
		redir /example /example/
		uri strip_prefix /example
		reverse_proxy example_app:3000
		}
}

Reload Caddy config

$ sudo docker exec caddy_web_server caddy reload --config /etc/caddy/Caddyfile

browse [http://example.com/example] --- Hello!

browse [http://example.com/example/api] --- true