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

Improving Self-Hosting and Removing 3rd Party dependencies. #4465

Open
wants to merge 24 commits into
base: main
Choose a base branch
from

Conversation

Podginator
Copy link
Contributor

No description provided.

Copy link

vercel bot commented Oct 30, 2024

@Podginator is attempting to deploy a commit to the omnivore Team on Vercel.

A member of the Team first needs to authorize it.

@KraXen72 KraXen72 mentioned this pull request Nov 1, 2024
@samanthavbarron
Copy link

samanthavbarron commented Nov 1, 2024

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
Copy link

@lovebes lovebes Nov 2, 2024

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.

Copy link
Contributor Author

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.

Copy link

@Mikilio Mikilio Nov 2, 2024

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.

Copy link

@volker-fr volker-fr Nov 2, 2024

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.

Copy link

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.

Copy link
Contributor Author

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.

@jsifalda
Copy link

jsifalda commented Nov 3, 2024

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? 🙏

@Podginator Podginator changed the title Self-Hosting Changes Improving Self-Hosting and Removing 3rd Party dependencies. Nov 3, 2024
@RayBB
Copy link

RayBB commented Nov 3, 2024

If this gets worked out I'll add a template for easy self-hosting with Coolify

@alexkotusenko
Copy link

Are you guys planning to add a docker container to self-host Omnivore?

### 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`

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

@TransonQ
Copy link

TransonQ commented Nov 5, 2024

Looking forward to a successful completion of this pr and thanks to the community for all their work.

@thiswillbeyourgithub
Copy link

Is there also a plan to also rebuild the android apk to allow specifying a server url?

@Podginator
Copy link
Contributor Author

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.

self-hosting/GUIDE.md Outdated Show resolved Hide resolved
Podginator and others added 2 commits November 5, 2024 16:56
Co-authored-by: Russ Taylor <729694+russtaylor@users.noreply.github.com>
@archmagepi
Copy link

thanks to the community for all their work.

@EnGassa
Copy link

EnGassa commented Nov 11, 2024

@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?

@Gnosnay
Copy link

Gnosnay commented Nov 12, 2024

even i changed the URL, the login will still redirect to localhost.
anyway thx for your contribution @Podginator

@Podginator
Copy link
Contributor Author

even i changed the URL, the login will still redirect to localhost. anyway thx for your contribution @Podginator

Have you changed it both in the env file, and in the docker compose file? For the web it needs to be changed too.

@Gnosnay
Copy link

Gnosnay commented Nov 14, 2024

even i changed the URL, the login will still redirect to localhost. anyway thx for your contribution @Podginator

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?
I even rebuilt the images. Actually

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.

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.

@maa-x
Copy link
Contributor

maa-x commented Nov 18, 2024

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.

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
Copy link

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

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

Successfully merging this pull request may close these issues.