this post was submitted on 12 Mar 2024
32 points (86.4% liked)

Selfhosted

40672 readers
321 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I'm looking for an easy way to upload files from my Android smartphone to my home server. is there a - ideally dockerized - solution for that? Some simple web GUI where I can click on "Upload" and the files will be saved to a certain directory on my home server?

EDIT: I should've added that I want to do this remotely and not in my local network. I want to be able to send files from my Android smartphone from anywhere via the internet to my home server. That's why I thought about a services hosted on my server, which frontend I could access through my smartphone. But I might've answered my question already with the following: https://github.com/zer0tonin/Mikochi

EDIT #2: Thanks guys, I ended up creating my own Docker container running nextcloudcmd inspired by this: https://github.com/juanitomint/nextcloud-client-docker But I built the container from scratch and it's very minimalistic. I can publish it on my Gitlab when it's somewhat ready. Here's a little preview.

Dockerfile

FROM alpine:latest
RUN apk update && apk add nextcloud-client
COPY nc.sh .
RUN chmod +x ./nc.sh
VOLUME /data
CMD ./nc.sh

nc. sh (How can I prevent automatic hyperlinking?)

#!/bin/sh
while true
do
        nextcloudcmd /data https://${username}:${passwort}@${nextcloud-domain}
        sleep 300
done
top 36 comments
sorted by: hot top controversial new old
[–] fart_pickle 34 points 9 months ago (2 children)
[–] [email protected] 7 points 9 months ago

It's amazing how often this program can be used to solve a problem someone has with their file sharing. And in my opinion it's an elegant solution and does it's job very well

[–] [email protected] 3 points 9 months ago

Same, I have a bunch of "inbox" folders and drop files into my server or desktop from my phone with 3 clicks.

[–] anamethatisnt 18 points 9 months ago (6 children)
[–] [email protected] 4 points 9 months ago

+1 for Material Files, really great App

[–] WhyAUsername_1 3 points 9 months ago (1 children)

For remote connection, you can use Tailscale along with Material Files and SMB/SFTP.

[–] anamethatisnt 1 points 9 months ago (1 children)

I honestly prefer selfhosting my home vpn using Wireguard or OpenVPN.

[–] WhyAUsername_1 3 points 9 months ago (1 children)

Yes. But that would assume that OP is not behind CGNAT. Also, even with Static IP, if I had to just do file transfer over SSH, I would use Tailscale over selfhosting wireguard. But that's my personal take on this.

[–] anamethatisnt 2 points 9 months ago

Yeah getting stuck behind CGNAT IPv4 and no IPv6 would break setting up your own vpn server. That would cause me too look for another internet provider.
I only got 100mbps at home so I'm still running openvpn as I don't gain anything worthwhile from wireguard.

[–] [email protected] 3 points 9 months ago

Material Files + SFTP is a winning combination. You probably already have SSH configured and it is quite secure.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

And SSH key authentication

[–] [email protected] 1 points 9 months ago

I highly recommend this one.

If all you're looking for is a way to send files from your phone to your server, this is the simplest way to do it.

Share your server volume as a SMB, mount to phone via Material Files.

[–] [email protected] 0 points 9 months ago

There is also FX which can do this too, additionally you can browse/download/upload files to/from the phone locally from PC through browser (the app opens up a web server).

[–] Zeoic 8 points 9 months ago (1 children)

You could technically do this with Nextcloud, but that is definitely overkill just for a file drop.
The next best thing I can think of for this would be localsend with auto accept enabled.

[–] hperrin 2 points 9 months ago (1 children)

You can’t really. Nextcloud requires a specific file structure. It’s not meant to serve ad-hoc directories.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago) (1 children)

You can add in local directory paths or file shares within your Nextcloud home directory.

I use that to access a local SMB share externally.

[–] hperrin 1 points 9 months ago (1 children)

Ah, ok. And it works when something outside Nextcloud changes the files?

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago)

Yes but it has limitations/risks that could be a deal killer depending on your use case.

When a file changes externally, Nextcloud doesn't know about the the changes until it looks at the file. It only looks when a user access that location within Nextcloud or during a automatic file scan.

The only time I have had issues with it is using a Nextcloud desktop client, as files are cached locally on the desktop and the client doesn't live query the server when you view the files locally.

Changes made externally of Nextcloud won't get updated on desktop clients until Nextcloud looks at the file an realizes a change happened.

This can be very annoying but also dangerous as you are at risk of editing an outdated file. For example if you edit a file via SMB and then edit the same file again on a desktop clients. The desktop clients won't have the new file with the B changes. So you risk overwriteing the files with an old version.

[–] HarriPotero 7 points 9 months ago (1 children)

I use syncthing. Share from any app, land on that directory on your server.

[–] [email protected] 1 points 9 months ago

Being p2p is a huge bonus, it exceeds (and predates) the self-host category! If I recall correctly, I had an intro post to the system somewhere.. can't look it up ATM.

[–] [email protected] 5 points 9 months ago
[–] [email protected] 4 points 9 months ago

SMB + Mixplorer

[–] hperrin 3 points 9 months ago* (last edited 9 months ago)

I just so happened to have made a solution for this:

https://hub.docker.com/r/sciactive/nephele

I recommend the Owlfiles app as a client if the browser client is not good enough. But the browser client should be good for your use case.

This is what the web interface looks like:

It’s meant to be able to run on any browser. Like, even the PS3 browser. It can also stream files like videos and music.

You can put it behind a reverse proxy without any worry.

That screenshot ^ is from my Jellyfin library, that I manage through Nephele.

[–] machinin 3 points 9 months ago

I use CX file server. It can create an SFTP connection. I also have a VPN through my router.

Syncthing may be easier if you don't have a VPN.

[–] WhyAUsername_1 2 points 9 months ago

If I were you, I would use some file manager app that allows ssh connection to the server, and do file transfer over ssh.

For remote use, I might use Tailscale to create a private network over the public internet and use it when outside of the home network.

[–] [email protected] 2 points 9 months ago

My go-to solution for this is the Android FolderSync app with an SFTP connection.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago) (1 children)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
CGNAT Carrier-Grade NAT
IP Internet Protocol
NAT Network Address Translation
SSH Secure Shell for remote terminal access
VPN Virtual Private Network

5 acronyms in this thread; the most compressed thread commented on today has 4 acronyms.

[Thread #596 for this sub, first seen 12th Mar 2024, 14:05] [FAQ] [Full list] [Contact] [Source code]

[–] marcos 1 points 9 months ago

Why does this bot set the text color? And why it does that and not set the background at the same time?

[–] corgi 1 points 9 months ago
[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

Syncthing works over local LAN and public internet relays, and is very good at traversing NAT

[–] PoliticallyIncorrect 1 points 9 months ago
[–] theRealBassist 1 points 9 months ago* (last edited 9 months ago)

So, at least on Samsung, the MyFiles app, the default file browser, allows for network connections via smb.

In my case, I use a vpn to tunnel into my network, and then just use the smb share.

It also allows for FTP and SFTP.

[–] [email protected] 0 points 9 months ago
[–] [email protected] 0 points 9 months ago (1 children)
[–] hperrin 2 points 9 months ago

Nextcloud has to have a specific file structure in its data directory. It sounds like OP wants to serve a particular, already existing directory, so in that case, Nextcloud wouldn’t work.

[–] [email protected] 0 points 9 months ago

Mount a folder to Filestash and you can access it via web ui ☺️

It is a filemanager in the browser, you can click upload there 😁