This is my reference implementation of a T9 server. There is particular emphasis on modularity with clear boundaries, reliability, and performance.
The build process requires the following tools installed:
- Make
- OpenSSL
- The Go toolchain
- Node.js and NPM
- Protobuf compiler
- Optionally, Docker and Docker-compose
Once the prerequisites are installed, simply typing the below will build and then install on the local system:
$ make
Alternatively, you may wish to build a binary and then scp it to a server for deployment. You can build such a binary for deployment to an AMD64/Linux server with the command:
$ make linux
If you have installed Docker and Docker-Compose (see Prerequisites), then you may build a Docker container. Simply type:
make docker
If any of the build steps fail, then it is advisable to clean up the workspace before attempting another build. Type:
$ make clean
On your local machine after local installation, run the server by typing:
$ t9
info 2020/05/11 14:31:03 server listening on https://127.0.0.1:4239/
While the server is running you may direct your browser to the address specified (warning: if you used the default command-line flags as in example above, expect an untrusted certificate warning.)
- Support lets-encrypt?
- Add cache-control/expires headers
- Unit tests
- Consider adopting zap for faster logging
- Support Brotli (once there is native, pure-go support)
This project is licensed under the terms of the GNU General Public License v2.0
Copyright ©2018 Robert Ellis [email protected]