Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API #74

Closed
badlanguage opened this issue Jul 26, 2021 · 5 comments
Closed

API #74

badlanguage opened this issue Jul 26, 2021 · 5 comments
Labels
enhancement New feature or request

Comments

@badlanguage
Copy link

Use case
There are a myriad of use cases for an API, one that is most common is adding functionality and deeply integrating Coolify with other platforms, for instance my company wishes to deeply integrate Coolify into our existing dashboard and for this we will need an API. Beyond this, it could be used for billing calculators, viewing usage for apps etc. from third party tools. (with more functionality being added as Coolify adds more features). This API should also come with clear cut documentation, that can be easily understood by developers.

The API (server) could be made in any language fit, but my personal recommendation would be to build with TS (Fastify) or Rust (Rocket).

This obviously adds a whole new scope to the project, but this is very necessary to move forward and to make Coolify into an enterprise grade project.

Footnotes
My company, is happy to invest man hours and make donations to help where possible; as am I happy to PR for this specific issue.

@andrasbacsai andrasbacsai self-assigned this Jul 26, 2021
@andrasbacsai
Copy link
Member

andrasbacsai commented Jul 26, 2021

Hey 👋 Thanks for the feature request!

I'm thinking the same for some weeks now. I used Fastify in the very first version, but switched to SvelteKit because the DX is perfect!

But as the scope of Coolify slightly changes over time, I will definitely rewrite it to Fastify (I know some Rust, but not my strongest skill atm 🙂).

You have really good suggestions, maybe we could chat about other things as well? I'm available on Twitter/Telegram/Slack/Discord/Email.

@andrasbacsai
Copy link
Member

Update: I manage to rewrite the whole API to Fastify (TS) and connect it to SvelteKit.

Currently, I'm testing to integrate Fastify with SvelteKit from the source code point of view - does it worth it or not. 🙂

@badlanguage
Copy link
Author

Glad to hear that things have been progressing with alot of speed, really looking forward to seeing a release for this soon; WRT to the Fastify and SvelteKit - I am not too familiar with Svelte to advice you on this, but from some quick research this seems to be rather tedious (and confusing) to achieve, the easier and perhaps appropriate choice would be to ship as a separate module (in Fastify); and have the UI (SvelteKit) interact with the API over using mongoose directly, this way we are removing any duplications and have everything centralised, and as time progresses tests can be implemented easily - making the over all project very modular.

@andrasbacsai
Copy link
Member

Yeah, after 15 mins of wrestling, I realized it does not worth it - it makes things very complicated. So I keep the API separated from the frontend.

@andrasbacsai andrasbacsai added this to the v2 milestone Aug 10, 2021
@andrasbacsai andrasbacsai removed this from the v2 milestone Feb 21, 2022
@andrasbacsai andrasbacsai added the enhancement New feature or request label Feb 21, 2022
@andrasbacsai andrasbacsai changed the title [Feature request] API API Feb 21, 2022
@andrasbacsai andrasbacsai removed their assignment Apr 18, 2023
@andrasbacsai
Copy link
Member

I'm closing this issue, because tracking features will be moved to GitHub discussions. Github issues will be only for bugs.

Version 4 is in full focus. v3 related issues will be closed, if it is not a critical bug.

Thanks for your understanding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants