jan/adr/adr-001-jan-deployable-cloud-native.md
2023-10-04 09:19:14 +07:00

1.9 KiB

ADR #001: Jan deployable cloud-native

Changelog

  • 23.10.03: Initial unfinished draft

Authors

  • @nam-john-ho
  • @louis

Context

Status Quo

Decision

  • This ADR aims to outline design decisions for deploying Jan in cloud native environments such as: Runpod, AWS, Azure, GCP in a fast and simple way.
  • The current code-base should not change too much.
  • The current plugins must be reusable across enviroments (Desktop, Cloud-native).
  • Simple authentication (username/password) must be supported.

Key Design Decisions

Key Design Introduce 2 components in Jan:

  • Middleware: responsible for routing the user interface to the appropriate platform (Electron/WebApp) that is built when packaged.
  • Http server: a http server on cloud environment which interacts with plugin directly.

Detailed Design

FE

  • Middleware: TBD
  • Httpserver: TBD
  • Custom build for httpweb/electron: TBD

Devops:

  • Allow to pass username/password as environment variables
  • Assign a Public IP to the instance
  • Customize instance types on-demand.
  • Runpod: TBD
  • AWS: TBD
  • Azure: TBD
  • GCP: TBD

Alternative Approaches

Separated server process runs along side with electron. 6005409a94

Considerations

References