New project - web ui for remote center server access

Heeey! How are you? First of all - thank you for your great job on syncthing. I love open-source idea and decentralized sync. I have tried many of self-hosted cloud solutions, but Syncthing is that what I needed. Except one thing - there is no nice web ui to instant access for folders f.e on friend pc without setupping whole Syncthing. So I have came up with idea - what about writing a small tool that would provide solution? That is how project SyncthingWebUI started. It is small ASP.NET MVC app that allows to treat one of server as full-cloud-server with http(s) access to files. Currently, project is under development so it provides basic functionality
Could you checkout? What do you think?

Check it on github: https://github.com/pwasiewicz/SyncthingWebUI

Ohh why .NET? Why Windows-only-solution? It is tricky question. I love c# and know .NET Framework the most. I hope I will port it into .NET Core (so it will be available on unix).-some day. Currently .NET Core is unstable.

1 Like

How to install you project to windows 32 and 64 bit?

setup_32.exe setup_64.exe

You need to have SQL Server LocalDB and IIS installed on your PC. Then you can follow: https://technet.microsoft.com/en-us/library/cc772350(v=ws.10).aspx

I suspect that’s probably above the level of effort most people are prepared to put in, unfortunately…

1 Like

Yeah I see. But project is developed for people, who has own server with public access. I believe if someone has the server, he is able to setup project. For other people, SyncthingWebUI has no sense, it would be useless :wink:

I like the idea and appreciate the effort. But this will probably not make it widespread as it only will run on windows systems. When this completely written in vanilla Golang (just as syncthing and its subprojects) it should run everywhere.

I like that you’re volunteering to continue the effort in golang, and look forward to your progress updates :wink:

I already tried to give it a shot but without a gui to have a central sync server for allowed clients which is just a stripped down version of syncthing cmd. This auto-creates shares for allowed devices. I have not put effort in it for some time as my personal priorities are shifted (for now).

https://github.com/xor-gate/syncthingsrv

1 Like

Hello, thanks for nice words. Indeed, I think that windows-only version can’t get much attention. I have already started porting into .NET Core version:

.NET Core web app can be run as well on Linux & MacOS.

Porting is slow because my primary server runs on windows (so I can use windows-only version) and have no motivation at all…

Why not started development in .NET Core instead of standard .NET 4.6? Unfortunately, when I have started project, .NET Core was quite unstable.

I hope I’ll find some time to finish port. Wish me luck :slight_smile:

1 Like

It is always nice to see some research projects. Ideas can be exchanged and doesn’t depend on the programming language/libraries used.

Good luck!

Don’t forget that not everyone knows or likes golang - almost all of the community contributions are in another language. I wouldn’t put too much weight on contributions being in Go.

1 Like

Yes I totaly agree, but for a cross-platform server application which runs as a daemon with a webgui go is a easier choice because existing code can be used. For desktop/app GUI applications this is a different story. As I have written a application bundle for OS X completely in Objective-C because I’m unable to access/use the OS X features from Golang.

Indeed, what’s more - in my case - c# is well known language, developing such a web app in clean GO would take too much time for me.

Anyway, still - I think .NET Core suits here, especially for ratio - my knownledge / available platforms :slight_smile:

1 Like

I ve had not enough time to finish it. But the idea is the same: One control panel for all servers:

greetings

Eddy :wink:

Looks nice! But I think my idea is a little bit different :slight_smile:

Your app is more for managing instances of syncthing on servers. Mine - is the front-end to access files on device with syncthing via http(s) without installing all syncthing stuff (or share a link to file to a friend :))

Anyway, good news - I have finished port after I had taken a few days off (yaay). Although is not fully tested in linux, windows version of .net core web app seems to work fine.

Hope will do some tests and scripts to run it on linux (still SQLite support is missing - I think it will be more appropriate than SQL Server although it is also available on linux :slight_smile: )

After tests - the next step is to connect to syncthing via api - to get info about current instance. Currently, all data about syncthing is fetched from config file (directly from file what is… baad :slight_smile: ).

It is nice to finally announce - port is finally done. You can get source from Github (linked in the previous post) or download binaries for ubuntu 16.04 x64: https://1drv.ms/u/s!AqjJUaf8hJIehaVxE0ttttUCXMDcvA

I’d recommend reading README file first at github.com. If you find a bug - do not hesitate to contact me :slight_smile:

Basically, how it works? It is a self-contained application (all libraries are included in the zip file, you do not need to install any software). Just run executable file SyncthignWeb. The application will start on default port 8385.

If you want to make app public on your server - just configure apache (or Nginx) as a reverse proxy.

1 Like

can you provide us with screenshots?

Screenshots are available on github readme:https://github.com/pwasiewicz/SyncthingWeb/blob/master/README.md