144 lines
2.7 KiB
Markdown
144 lines
2.7 KiB
Markdown
## requirements
|
|
|
|
* Docker
|
|
|
|
## up and running
|
|
|
|
### build container image
|
|
|
|
$ make image-build
|
|
|
|
### build site
|
|
|
|
$ make build
|
|
|
|
### start dev server
|
|
|
|
$ make serve
|
|
|
|
Visit `localhost:8080` in web browser
|
|
|
|
## getting around
|
|
|
|
### rebuild the container image
|
|
|
|
$ make image-rm image-build
|
|
|
|
### generate a new site file
|
|
|
|
$ docker run --rm -w /opt/app -v $PWD:/opt/app miti.sh sitegen new
|
|
|
|
### add an index page
|
|
|
|
#### create the file
|
|
|
|
$ docker run --rm -w /opt/app -v $PWD:/opt/app miti.sh sitegen page /opt/app index
|
|
|
|
#### add to `site.moon`
|
|
|
|
add "index.md"
|
|
|
|
### add config for nginx
|
|
|
|
$ mkdir logs/ conf/
|
|
|
|
# conf/nginx.conf
|
|
worker_processes 1;
|
|
error_log logs/error.log;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
server {
|
|
listen 8080;
|
|
location / {
|
|
default_type text/html;
|
|
}
|
|
}
|
|
}
|
|
|
|
### build a single file
|
|
|
|
$ make build file=index.html
|
|
|
|
### start a shell
|
|
|
|
$ make shell
|
|
|
|
### start watcher
|
|
|
|
$ docker exec -it container_name sitegen watch
|
|
|
|
### run tests
|
|
|
|
$ make test
|
|
|
|
### lint moonscript
|
|
|
|
$ make lint
|
|
|
|
### print out pygments styles
|
|
|
|
$ pygmentize -S STYLE -f formatter
|
|
|
|
example:
|
|
|
|
$ pygmentize -S default -f html
|
|
|
|
### deploy
|
|
|
|
$ make deploy
|
|
|
|
### renew server TSL certs
|
|
|
|
SSH into server admin account and run:
|
|
|
|
$ cd www
|
|
$ dehydrated --config config -c
|
|
|
|
Then restart the OpenResty service:
|
|
|
|
$ sudo service openresty restart
|
|
|
|
#### automate TSL cert renewal with cron
|
|
|
|
Open root's crontab:
|
|
|
|
$ sudo crontab -e
|
|
|
|
Add the following line, then save and exit:
|
|
|
|
19 4 1 * * /usr/bin/dehydrated --config /var/www/config --cron >/dev/null 2>&1 && /usr/bin/systemctl restart openresty.service
|
|
|
|
## gotchas
|
|
|
|
### What is error `cosmo failed: [string "..."]:62: cannot resume dead coroutine`?
|
|
|
|
If you call `cosmo.yield`, your function **must** return `nil`! If you forget
|
|
to return `nil`, you will see this cryptic error:
|
|
|
|
Error: index.html -> html/index.html: cosmo failed: [string "..."]:62: cannot resume dead coroutine
|
|
make: *** [Makefile:6: build] Error 1`
|
|
|
|
### What is error `calling 'load_cache' on bad self`?
|
|
|
|
moon: .../local/openresty/luajit/share/lua/5.1/sitegen/common.lua:41:
|
|
/usr/local/openresty/luajit/share/lua/5.1/sitegen/cache.lua:99: calling
|
|
'load_cache' on bad self (table expected, got userdata) stack traceback:
|
|
|
|
Delete your `.sitegen_cache` file.
|
|
|
|
## thinking about
|
|
|
|
* use sitecache with pandoc renderer
|
|
* draft documents
|
|
* treesitter highlighting for moonscript
|
|
|
|
## todo
|
|
|
|
* destroy a target ship by shooting them with the cannon
|
|
* make corners not bouncy (leave them bouncy for now?)
|
|
* wall entities
|
|
* ship-ship collision
|
|
* make ssh command?
|