Coder Social home page Coder Social logo

hwittenborn / celeste Goto Github PK

View Code? Open in Web Editor NEW
992.0 14.0 32.0 645 KB

GUI file synchronization client that can sync with any cloud provider

License: GNU General Public License v3.0

Rust 95.54% SCSS 0.32% Shell 0.31% HTML 1.16% Just 2.67%
cloud-storage dropbox google-drive gtk4 libadwaita linux nextcloud owncloud rclone webdav

celeste's Introduction

Help support Celeste

Hey! I'm Hunter Wittenborn, the creator and maintainer of Celeste.

I've had a blast working on Celeste in the time I've had available, but I'm currently not able to put all the time I'd like into it. I'm a university student which keeps me busy at times, but I also have part-time jobs on the side that keep me quite busy, even when I'm not occupied with my school work.

If you'd like to help me keep driving Celeste forward, I humbly ask that you consider sponsoring my work. With your help, I can use more of my time on Celeste's development, allowing it to flourish into a program that people everywhere can use!

Celeste

Celeste is a GUI file synchronization client that can connect to virtually any cloud provider.

  • Backed by rclone, giving you a reliable and battle-tested way to sync your files anywhere
  • Written with GTK4 and Libadwaita, giving Celeste a native look and feel on your desktop
  • Written in Rust, making Celeste blazingly fast to use

Features

  • Two-way sync
  • Asking what to do when a local and remote file have both been updated since last sync
  • Ability to exclude files/folders from sync
  • Connecting to multiple cloud providers at the same time

Supported cloud providers

Celeste can currently connect to the following cloud providers:

  • Dropbox
  • Google Drive
  • Nextcloud
  • Owncloud
  • pCloud
  • Proton Drive
  • WebDAV

Installation

Celeste can be installed via the methods listed below:

Flatpak

Celeste is available on Flathub. First make sure you have set up Flatpak on your system, and then run the following:

flatpak install flathub com.hunterwittenborn.Celeste

Snap

Celeste is available on the Snap Store, which can be installed on any system that has Snap installed.

snap install celeste

Prebuilt-MPR (Debian/Ubuntu)

If you're on Ubuntu 22.10 or later, you can install Celeste from the Prebuilt-MPR. First make sure the Prebuilt-MPR is set up on your system, and then run the following:

sudo apt install celeste

Support

Celeste has multiple communication rooms available if you need assistance, want to talk about the project, or to just hang around with some fellow users:

Bugs and features can be discussed in the rooms if you feel like there's information that should be talked about, but such should ultimately fall into the issue tracker.

Contributing

Instructions still largely need to be written up - if you'd like to help with that, feel free to submit a PR!

Translating

Celeste uses Weblate to manage translations. See https://hosted.weblate.org/projects/celeste/celeste if you'd like to assist in translating.

celeste's People

Contributors

eriolloan avatar hwittenborn avatar kavplex avatar kianmeng avatar kisaragi-hiu avatar loveisfoss avatar maryjane-ai avatar mdvhimself avatar r-w-i avatar renovate[bot] avatar soumyadghosh avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

celeste's Issues

unwraps and panics instead of handling permission denied error

When selecting a folder that Celeste does not have permission to mount at (in my case /mnt/folder), Celeste crashes, and crashes again every time it's reopened with the following message:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', celeste/src/launch.rs:416:134
stack backtrace:

Localization support

It would be great if the app could be translated. I'll provide the Dutch translation once this is possible.

Main thread panicks when reading local directory with trailing slash

After saving a folder pair with /home/flo/Dokumente/ as the local folder, the whole application crashed with the following error message:

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', celeste/src/launch.rs:1594:34

When starting the application again, it crashes approximately half a second after the main window comes up, so I have no chance to interact with it.

The relevant source line:

celeste/celeste/src/launch.rs

Lines 1592 to 1594 in da2f913

let local_path_stripped = local_path
.strip_prefix(&format!("{}/", sync_dir.local_path))
.unwrap();

I installed version v0.3.5 via Flatpak.

Nautilus Plugin

The official Nextcloud Client has a Nautilus plugin which integrates it a bit more (sharing in right click menu, emblems showing the sync state, ...)

Only sync when files are changed

Currently we sync by just looping forever and checking for changed. It would probably be better to just detect when a directory has been changed and then sync that directory.

Password isn't allowed to contain `:`

When trying to connect to a nextcloud account, celeste does not allow me to log in because it states that it cannot allow passwords with the char: :

My nextcloud provider allows passwords with :

celeste

Celeste is not verified by Google

Hello, I've been trying this app to sync files with google drive and so far, everything is good when sychronizing regular files. (There's a case when dealing with google docs, where Celeste duplicates the Google file into a corresponding Microsoft equivalent). But that aside, I just wanted to let you know that Google says that Celeste hasn't been verified, when trying to log in to google drive from the application, which might raise some red flags for less technical users.

I am hopefully attaching an image of that message by Google. Thank you for this marvelous work, though!

imagen

Celeste can't complete sync when it's open and a file is updated in real time in the local directory (Google Drive)

I was testing the sync functionality when one is working with the files while Celeste is running in the background and I noticed some trouble. When I modify a file in the remote (Google Drive), Celeste is able to sync the corresponding file in the local directory without any problems. However, when modifying the file in the local directory, a sync error appears.

In this example, I opened a text file (test.txt) and added some more characters inside of it. Immediately, Celeste says that the file does not exist, even though they are still stored in the local and remote directories. The remote file was not updated because of said error. Also, when dismissing the error message, it appears again and again, causing Celeste to stop syncing that directory.

Hopefully, the screenshot helps. :)

Steps to reproduce:

  1. Create a file in the local directory.
  2. Open the file and edit its contents in the local directory.

imagen

Consider using lzo compression for the snap package

Hello, I'd like to suggest that the snapcraft.yaml file includes the option to use lzo compression for the application. That way, the boot time for the application will be improved, compared to the default compression used.

It seems like celeste uses only 1 cpu core

It seems like celeste uses only 1 cpu core when working.

My laptop (CPU: intel 1255u) gets to 85 Celsius when celeste checks if there are any changes in my synced folder. Is this normal?

Screenshot from 2023-02-08 21-45-12

Support for MEGA cloud?

The MEGAsync desktop app kinda sucks. Is there an easy way to integrate MEGA into the app?

Unknown error - thread 'main' panicked.

Everytime I try to sync Google Drive. I get the same error.

thread 'main' panicked at 'internal error: entered unreachable code', celeste/src/launch.rs:2226:33
stack backtrace:

And the app crash.

I get this log from terminal.

โฏ flatpak run com.hunterwittenborn.Celeste

(process:2): Gtk-WARNING **: 15:14:27.065: Locale not supported by C library.
        Using the fallback 'C' locale.

(process:15): Gtk-WARNING **: 15:14:27.152: Locale not supported by C library.
        Using the fallback 'C' locale.

(celeste:15): Adwaita-CRITICAL **: 15:14:27.284: ../src/adw-header-bar.c:640: tried to remove non-child 0x564a600437d0 of type 'GtkButton' from 0x564a6003f210 of type 'AdwHeaderBar'

(celeste:15): Adwaita-CRITICAL **: 15:14:27.284: ../src/adw-header-bar.c:640: tried to remove non-child 0x564a6005a300 of type 'GtkButton' from 0x564a6003f3f0 of type 'AdwHeaderBar'
Info: Starting up tray binary...

(process:50): Gtk-WARNING **: 15:14:27.491: Locale not supported by C library.
        Using the fallback 'C' locale.
thread 'main' panicked at 'internal error: entered unreachable code', celeste/src/launch.rs:2226:33
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

(celeste:2): GLib-GIO-WARNING **: 15:14:42.024: Your application does not implement g_application_activate() and has no handlers connected to the 'activate' signal.  It should do one of these.

Unable to log in to Nextcloud

When trying to log in to Nextcloud, the app freezes and stops responding. Force quitting and relaunching the app, then typing in the same details again results in the app telling me that the server name already exists.

Add ability to hide servers panel

The panel that shows the list of servers should have the ability to be hidden. Furthermore, when only one server is set up we should always hide it.

add ability to restrict bandwidth

I have a rather slow connection. I use rclone in various custom/hacky ways to sync with gdrive, and I know there's an option to limit bandwidth.

It'd be great to see that added as a configurable parameter.

Add on-demand sync functionality.

The idea for this feature is inspired by the functionality offered by multiple cloud providers like pCloud and OneDrive in their native clients.

The aim is to display all files stored in these cloud platforms within the file manager without requiring them to be downloaded. Once accessed through opening and loading them with an application, the files will be synchronized in the background and stored locally. Ideally, there should also be the capability to always keep specific folders/files synchronized in case there is a desire to access them offline or in the event of poor internet connectivity.

The advantages are the ability to synchronize files to the cloud without having to visit the web interface or syncing a particular folder to the local storage initially, and ensuring that references to these files are not broken in the event that they are not intended to be kept on the computer constantly.

Crash and error message after trying to delete folder connection

When removing a synced folder, app crashes with following error:

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', celeste/src/launch.rs:1399:26
stack backtrace:

When trying to restart the app, this error appears:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', celeste/src/launch.rs:416:134
stack backtrace:

Deleting /home/me/.var/app/com.hunterwittenborn.Celeste, makes the app start without an error.

Pop_OS 22.04
Nextcloud
Flatpak

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.