split-pro icon indicating copy to clipboard operation
split-pro copied to clipboard

[Feature Request] Support for Local Storage

Open gravelfreeman opened this issue 1 year ago • 17 comments

It's currently possible to attach a picture to a transaction if you've configured the following block storage environment variables:

      - R2_ACCESS_KEY=${R2_ACCESS_KEY}
      - R2_SECRET_KEY=${R2_SECRET_KEY}
      - R2_BUCKET=${R2_BUCKET}
      - R2_URL=${R2_URL}
      - R2_PUBLIC_URL=${R2_PUBLIC_URL}

However, I believe many users, myself included, would prefer using local storage instead.

In my case, local storage is the primary copy, and I already have a separate setup to back up this data to block storage.

gravelfreeman avatar Jan 06 '25 02:01 gravelfreeman

you can attach picture file already!

KMKoushik avatar Jan 25 '25 13:01 KMKoushik

you can attach picture file already!

I looked and I'm on v1.3.4 and there's no option to attach a picture on mobile. Could you send a screenshot where that option is? I feel super dumb asking this!

gravelfreeman avatar Feb 05 '25 19:02 gravelfreeman

@gravelfreeman It appears next to the Submit button once you fill in the expense details

krokosik avatar Feb 28 '25 14:02 krokosik

@gravelfreeman It appears next to the Submit button once you fill in the expense details

I don't have the attachment option on both Mobile web and Desktop web either. I am self-hosting the app with Unraid (Docker), but not using AWS or any of that, keeping it very local, simple login, SMTP for email, the postgres DB and the NextAuth secret that's it. App works great outside of the attachment option missing.

Do we know what needs to be connected to enable attachments? My bet is it's something cloud hosted triggering it. Would be great if we can have the attachments on a completely local self hosted instance. I have a reverse proxy set up, but denying anyone outside my local network from accessing my splitpro URL.

Thanks!

cyphercolt avatar Mar 12 '25 14:03 cyphercolt

See the example dev docker-compose.yml file. You need some sort of bucket storage, if not AWS, then you can set up Minio for that.

krokosik avatar Mar 13 '25 12:03 krokosik

See the example dev docker-compose.yml file. You need some sort of bucket storage, if not AWS, then you can set up Minio for that.

Is it only available on dev? I can't see any documentation for it. I can spin a b2 bucket no problem but I would've prefer to have it in a local pvc which is then backed up on bucket storage.

Is pvc an option or not at all?

gravelfreeman avatar Mar 13 '25 21:03 gravelfreeman

AFAIK it has to support the AWS S3 SDK, as it is used in the code for storing the receipts. Minio is a self-hosted example that you can use in your local, prod deployment (this is what my group does). I'm not familiar with pvc, so I'm not sure what exactly you are asking for.

krokosik avatar Mar 14 '25 11:03 krokosik

AFAIK it has to support the AWS S3 SDK, as it is used in the code for storing the receipts. Minio is a self-hosted example that you can use in your local, prod deployment (this is what my group does). I'm not familiar with pvc, so I'm not sure what exactly you are asking for.

To be honest it doesn't really matter what pvc is. Most applications will have a local folder like /attachments which the person running the docker image can do whatever they want with that path. In my case I would bind mount the /attachments folder to a local pvc storage which is backed up with volsync on s3 storage in a bucket that I already manage with my whole stack of applications.

The other advantage I'm seeing here is that I wouldn't have to pay everytime I want to see a receipt since they would be all local and instead I'd pay only to backup and restore the whole /attachments folder.

gravelfreeman avatar Mar 16 '25 15:03 gravelfreeman

For the record, minio is open source and free. There is no cost associated to having a minio container locally.

rossnick avatar Mar 16 '25 15:03 rossnick

For the record, minio is open source and free. There is no cost associated to having a minio container locally.

I don't think people will want to run minio locally. It's a lot of overhead for receipts storage for a splitting application. I have 0 out of a total of more than an hundred of applications requiring s3 storage locally.

gravelfreeman avatar Mar 16 '25 17:03 gravelfreeman

Since there is an option to attach receipts and store them in an arbitrary S3 storage of your choice, can this be closed? Altough your initial question seems to relate more to some kind of OCR, if so could you update the title?

krokosik avatar May 24 '25 10:05 krokosik

Since there is an option to attach receipts and store them in an arbitrary S3 storage of your choice, can this be closed? Altough your initial question seems to relate more to some kind of OCR, if so could you update the title?

I think a lot of people will want local storage and minio is a lot of overhead and resources for someone running a cluster on a RPI or lower end pc. The block storage integration is a great to have but in my opinion it doesn't replace local storage.

I'll edit this feature request to reflect exactly what I initially meant.

gravelfreeman avatar May 24 '25 18:05 gravelfreeman

Looks like another reason to ditch S3 dropped: https://www.reddit.com/r/selfhosted/comments/1kva3pw/avoid_minio_developers_introduce_trojan_horse/

krokosik avatar May 29 '25 13:05 krokosik

Looks like another reason to ditch S3 dropped: https://www.reddit.com/r/selfhosted/comments/1kva3pw/avoid_minio_developers_introduce_trojan_horse/

Yeah I saw this too. Maybe I'm wrong but I've found Spliit and it has the same S3 storage as Splitpro does. Was Splitpro forked from Spliit and inherited from the S3 storage backend?

gravelfreeman avatar Jun 05 '25 15:06 gravelfreeman

I don't think so, it was just a very popular choice for local S3 alternative (not anymore)

krokosik avatar Jun 06 '25 15:06 krokosik

I am also looking forward to this. Something so receipts can stay local. Additionally it would be beneficial if they could be compressed not sure if that is already done as haven't been able to utilise the feature in my local instance.

angel-pandey avatar Nov 16 '25 20:11 angel-pandey

There is no compression unfortunately. I also don't plan to implement local storage in the near future. You can have local receipts with a local R2/S3 service.

krokosik avatar Nov 16 '25 20:11 krokosik