This is a work in progress
Pretty simple proof of concept:
- One exposed endpoint based on the
PORT
environment variable; other internal ports to the container are 4100 and 4000 - Golang Fiber service is the front door to handle compression, service to service auth, storage (key value pairs)
- Anuglar Universal App w/ Express Engine for application logic, user auth (setup via WorkOS service), and UI
Location build/dev server, and deployment (not done yet) handled through the file ./service
Setup Development Environment:
- Install golang (brew install golang)
- Install NodeJS w/ NPM (brew install node)
- Install
xz
as global (npm install -g xz) - Install levelDB form google for development (brew install leveldb)
- chmod 777 ./service
Key commands:
./service dev
(runs dev server)./service build
(performs production build including generating a macos binary for local testing)./service start-macos
(starts production build on mac from the build output in number 2 above)./service start
(starts the production linux instance to be used inside the docker container)
Languages and Frameworks Used: Golong, Go Fiber, Angular Universal w/ Express Engine, Google's xz
nodejs package for automation and official node container for runtime.
GCP Technologies: Google Cloud Run, Google Secret Manager
What is left for initial POC?
- Test building container
- Setup Secret Manager
- Switch the LevelDB store to use Google CLoud Storage
- Setup the magic link endpoints using WorkOS