apollo

module
v0.0.0-...-2757dea Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2025 License: MIT

README

Apollo Web Library

This is the internal Prior-IT full-stack web library code-named "Apollo". It is primarily open-sourced to make our own dev-flow easier, but external pull requests are still welcome. The focus of Apollo is to allow developers to very quickly iterate and test out new ideas without having to worry too much about dependencies or making things work together. Apollo contains everything you need out-of-the-box for a web server and has bootstrapping / utility functions to combine it all together.

Apollo is currently in development, expect frequent breaking changes.

You can get started by downloading the project, installing dependencies, and running the documentation server:

git clone git@github.com:Prior-IT/apollo.git
just setup
just docs

Running tests

To run all tests once, call just test. If you want to hot reload tests (e.g. while writing or tweaking them), you can use just devtest. You can also run just devtest ./server/... or just test ./server/... to only run tests for those directories. Or run just test -run Users ./... (and the same for devtest) to only run tests that contain "Users" in their name.

Apollo Runner

Applications built with Apollo can use the ./cmd/runner command to run their application with full live-reloading. Check out config/config.go for the configuration settings that enable this runner.

TODO

  • Magic e-mail login
  • Username + password login
  • Move account cache to a separate service (so you can use redis for caching while still storing accounts in postgres)
  • Alert component
  • E-mail verification

Technologies

The following technologies are part of the Apollo tech stack:

Directories

Path Synopsis
Package bootstrap contains functionality to quickly launch bootstrapped versions of Apollo applications
Package bootstrap contains functionality to quickly launch bootstrapped versions of Apollo applications
cmd
runner command
templ: version: v0.2.793
templ: version: v0.2.793
Package config defines the Apollo configuration.
Package config defines the Apollo configuration.
Package core provides the core domain modules and service interfaces for the Apollo library.
Package core provides the core domain modules and service interfaces for the Apollo library.
Package login provides models and service interfaces related to user authentication.
Package login provides models and service interfaces related to user authentication.
Package oauth provides login methods that use OAuth or OIDC accounts.
Package oauth provides login methods that use OAuth or OIDC accounts.
Package permissions defined models and service interfaces for all permission- related functionality.
Package permissions defined models and service interfaces for all permission- related functionality.
Package postgres contains Postgres-specific implementation of the Apollo domain models and services.
Package postgres contains Postgres-specific implementation of the Apollo domain models and services.
internal/sqlc
Package sqlc contains auto-generated SQL bindings.
Package sqlc contains auto-generated SQL bindings.
templ: version: v0.2.793
templ: version: v0.2.793
Package smtp provides implementations of services for sending e-mails using an SMTP server
Package smtp provides implementations of services for sending e-mails using an SMTP server
Package tests contains helpers for making it easier to write tests.
Package tests contains helpers for making it easier to write tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL