Commit graph

50 commits

Author SHA1 Message Date
Nikos Papadakis
2955f68562
CI: Use caching for nix 2023-10-12 22:13:00 +03:00
Nikos Papadakis
e8a6ebafc2
CI (Work in progress): Use nix for building in CI 2023-10-12 01:29:01 +03:00
Nikos Papadakis
f1c784c79c
nix: simpler refactor into files, add scripts 2023-10-07 14:43:07 +03:00
Nikos Papadakis
082e5bf210
nix: add postgres and multiple system support 2023-10-01 11:26:40 +03:00
Nikos Papadakis
4bc159d698
chore: switch to nix for development (closes #2)
This commit add nix support for development shells. The developer can
use `nix develop` to setup a complete and reproducable devleopment
environment using Nix.
2023-09-30 21:06:56 +03:00
Nikos Papadakis
c896fd6d7e
upgrade deps 2023-09-20 16:08:42 +03:00
Nikos Papadakis
3628754120
app: support button as link 2023-09-10 15:46:42 +03:00
Nikos Papadakis
9b0ddf107e
ci: refactor - use cached builds, add tests and lints 2023-09-10 13:51:06 +03:00
Nikos Papadakis
c1e39c9bf2
app: use x-forwarded-for header to get ips 2023-09-04 13:11:06 +03:00
Nikos Papadakis
414cba561b
app: enable local email storage for now 2023-09-04 12:34:41 +03:00
Nikos Papadakis
e0991498fd
ci: use sccache for cargo & fix ci 2023-09-04 12:04:17 +03:00
Nikos Papadakis
ec365709b4
ci: app release pipeline 2023-09-03 15:18:06 +03:00
Nikos Papadakis
7e71df8a96
app: fix dialyixir (closes #4) 2023-08-29 14:17:08 +03:00
Nikos Papadakis
26ba60b95d
app: refactor the Connection to make it asynchronous when connecting
Some work has been done on making the Connection feel nicer, but also
more work is needed to not have the channel be exposed to the upper
layers of the application. We should wrap all the GRPC calls in the
GenServer (which may also allow caching on certain calls such as
get_sys_info)
2023-08-28 23:32:42 +03:00
Nikos Papadakis
be7f584010
app: a nice poc background connection with the agent
Dynamically supervise a GRPC connection and keep it alive for a while,
using a timeout to kill the process on inactivity.

The Connection GenServer keeps the connection alive, while listening to
a health stream from the GRPC endpoint, notifying any subscribed
listeners about changes to health.

This health is then propagated to the main servers page.

Also create a looping get_sys_info which retrieves some basic system
information.
2023-08-26 00:51:04 +03:00
Nikos Papadakis
89ffca8833
agent: dependency update, cleanup, and logging
- ran cargo update
- added tower-http and attached the tracing subscriber
- make the repo a cargo workspace
2023-08-24 22:16:00 +03:00
Nikos Papadakis
5bd44ef9ac
refactor: agent connections now use the new healthcheck streaming
`Prymn.Agent.Connection` GenServer uses healthchecking with the new
streaming RPC, retrieving asynchronously the health status of the agent.

The Connection will also shut itself down when there's no usage (when
the keepalive function is not called frequently)
2023-08-19 21:14:07 +03:00
Nikos Papadakis
20896ab5a3
app: add 'Skip to content' link for accessibility' 2023-08-17 13:24:09 +03:00
Nikos Papadakis
6071e4d155
ci: conditions on builds 2023-08-12 14:03:15 +03:00
Nikos Papadakis
5d948f4c19 Add health checking system to agent
Adds a health checking endpoint on the GRPC server. This is a stream that changes whenever a health status update occurs.

Reviewed-on: https://git.nikos.gg/prymn/prymn/pulls/5
Co-authored-by: Nikos Papadakis <nikos@papadakis.xyz>
Co-committed-by: Nikos Papadakis <nikos@papadakis.xyz>
2023-08-12 09:37:01 +00:00
Nikos Papadakis
98fb50dcff
ci: fix execute on main branch 2023-08-02 19:28:03 +03:00
Nikos Papadakis
63c75316de
bump tool-versions 2023-07-29 20:19:21 +03:00
nikos
d8f4baff8b Merge pull request 'Add user authentication' (#1) from add-auth into main
Reviewed-on: https://git.nikos.gg/prymn/prymn/pulls/1
2023-07-29 11:49:46 +00:00
Nikos Papadakis
a9d8786d11
Add typespecs, remove unneeded documentation 2023-07-29 14:45:09 +03:00
Nikos Papadakis
1a2f7d78e8
app: add user authentication 2023-07-28 23:44:00 +03:00
Nikos Papadakis
90ccdedd7b
app: use normal assigns instead of streams for the server list 2023-07-26 22:41:52 +03:00
Nikos Papadakis
dbdc7e0d80
agent: make installation work 2023-07-20 23:11:12 +03:00
Nikos Papadakis
c87a3cb7e0
ci: few changes 2023-07-19 23:27:20 +03:00
Nikos Papadakis
de55092ade
rename backend -> app 2023-07-19 23:24:24 +03:00
Nikos Papadakis
7fe45ca94b
setup CI and a more complete installation script
Use woodpecker-ci to deploy binaries to the R2 object storage. Use
multi-target builds to deploy multiple binaries for one or more CPU
architectures.

Now the installation script lives on the root of the repo, and it is
more complete checking the machine's requirements, operating system and
cpu architecture.
2023-07-19 23:01:18 +03:00
Nikos Papadakis
749780a1d5
Update README.md 2023-07-13 15:16:15 +03:00
Nikos Papadakis
6a8166daec
backend: run mix deps.update --all 2023-07-12 13:19:18 +03:00
Nikos Papadakis
40be58f9c6
agent: register agent to backend 2023-07-09 19:58:51 +03:00
Nikos Papadakis
a8699035d8
backend: live connection status! 2023-07-09 19:41:41 +03:00
Nikos Papadakis
e12e20eb38
agent: add self installation 2023-07-01 12:21:01 +03:00
Nikos Papadakis
ecf03b8f93
backend: add "agents" context
Manages connection processes to a remote agent
2023-06-27 22:28:00 +03:00
Nikos Papadakis
bd51310f84
Add protobuf compiling to the elixir backend 2023-06-24 20:10:22 +03:00
Nikos Papadakis
aa4372564c
Add README.md 2023-06-24 12:44:45 +03:00
Nikos Papadakis
48ecd99689
move proto dir to top level 2023-06-23 14:39:11 +03:00
Nikos Papadakis
3c779c6b64
backend: register server api 2023-06-23 10:05:10 +03:00
Nikos Papadakis
6b14c2d1cc
backend: update .tool-versions 2023-06-21 21:27:05 +03:00
Nikos Papadakis
166159647e
backend: run upgrade 2023-06-20 18:48:33 +03:00
Nikos Papadakis
52b892bb4f
web: new server form 2023-06-19 23:28:24 +03:00
Nikos Papadakis
b5cab545e6
agent: add tracing + graceful shutdown 2023-06-19 14:34:09 +03:00
Nikos Papadakis
cc298cf11c
Fix rpc 2023-06-19 14:02:22 +03:00
Nikos Papadakis
01a0b038f7
Improve exec module 2023-06-15 13:55:24 +03:00
Nikos Papadakis
1e6ef4ef45
Add servers liveview 2023-06-14 09:42:24 +03:00
Nikos Papadakis
25c8e226c9
Project chores 2023-06-14 09:42:21 +03:00
Nikos Papadakis
1056446778
Add agent 2023-06-13 16:02:49 +03:00
Nikos Papadakis
ffbd1d6f75
Init! 2023-06-01 12:49:27 +03:00