-
Notifications
You must be signed in to change notification settings - Fork 987
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
Improving Self-Hosting and Removing 3rd Party dependencies. #4465
base: main
Are you sure you want to change the base?
Conversation
@Podginator is attempting to deploy a commit to the omnivore Team on Vercel. A member of the Team first needs to authorize it. |
This is awesome, it looks like it's taking shape! I might try it out this weekend. Are there contributions from the community that you can think of that would be helpful for you? |
import { getSignedUrl } from '@aws-sdk/s3-request-presigner' | ||
import type { Readable } from 'stream' | ||
|
||
// While this is listed as S3, for self hosting we will use MinIO, which is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use Cloudflare R2 as well for self hosting? What was the decision behind using MinIO?
Asking because R2 is also S3 compatible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not actually familiar with R2 - but anything that is S3 Compatible should work. Let me take a look later to see whether or not the Storage Client I built works with it.
Minio was chosen because it can be self-hosted along with the rest of the application. There is a docker image, and it can all run on the same server without relying on anything external.
I'm trying to ensure everything here can be run self-contained without any need for external services.
That said, as with some of the email changes, I am looking into ways to simplify parts of it too, and having some external services is ok with me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To find suitable services, I recommend consulting r/self-hosted.
Love the work so far.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
S3 is a nice idea, provides various options, including self hosted ones.
How about local storage? This would reduce the required dependencies by one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh wow I didn't know Minio can be self-hosted! That sounds like a good idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
S3 is a nice idea, provides various options, including self hosted ones.
How about local storage? This would reduce the required dependencies by one.
The uploads are done via signed-urls, so while local-storage would be feasible it'd require a bit more development work.
does it mean i would be able to deploy open-source omnivore to vercel? and be able to use this great app even after their shut-down? 🙏 |
If this gets worked out I'll add a template for easy self-hosting with Coolify |
Are you guys planning to add a docker container to self-host Omnivore? |
self-hosting/GUIDE.md
Outdated
### 3. Populate the .env file | ||
|
||
There is a .env.example file located within the docker-compose folder that should give you the necessary environment variables to begin running. | ||
You can use these by `mv .env.example.env` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello, playing with the guide I believe I just found a typo here. It's missing a space and should be mv .env.example .env
Looking forward to a successful completion of this pr and thanks to the community for all their work. |
Is there also a plan to also rebuild the android apk to allow specifying a server url? |
You should be able to do this today. If you log out there's a self-hosting option on the android App. Also the iOS App. I think there's a few bugs in both that need ironing out. In the android version you seemingly can't add links currently. |
Co-authored-by: Russ Taylor <729694+russtaylor@users.noreply.github.com>
thanks to the community for all their work. |
@Podginator thanks for leading this effort. I'm sure this is really important to a lot of people in the community. How can we help push this along faster? |
even i changed the URL, the login will still redirect to localhost. |
Have you changed it both in the env file, and in the docker compose file? For the web it needs to be changed too. |
Yeah I did. I guess I need to change code also? |
There is a .env.example file located within the docker-compose folder that should give you the necessary environment variables to begin running. | ||
You can use these by `mv .env.example.env` | ||
|
||
The following environment variables should be changed to reflect where you are running your application. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the table below should also include IMAGE_PROXY_URL
and CLIENT_URL
as variables that need to be changed.
Hey, I made a PR which was merged into main (#4110) but didn't make it into the App Store. It solves an intermittent crash when using a self-hosted backend. |
- .env | ||
|
||
content-fetch: | ||
platform: linux/amd64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason to specify platform? This is causing failure in ARM based machines
No description provided.