GithubHelp home page GithubHelp logo

haiwen / seafile Goto Github PK

View Code? Open in Web Editor NEW
11.7K 446.0 1.5K 11.82 MB

High performance file syncing and sharing, with also Markdown WYSIWYG editing, Wiki, file label and other knowledge management features.

Home Page: http://seafile.com/

License: Other

C 82.93% Python 14.41% Shell 0.51% Vala 0.24% Makefile 0.38% M4 1.39% C++ 0.15%
cloud-storage file-sync file-sharing wiki markdown knowledge-management document-management

seafile's Introduction

Introduction Build Status

Seafile is an open source cloud storage system with privacy protection and teamwork features. Collections of files are called libraries. Each library can be synced separately. A library can also be encrypted with a user chosen password. Seafile also allows users to create groups and easily sharing files into groups.

Feature Summary

Seafile has the following features:

File syncing

  1. Selective sync for any folder.
  2. Correctly handles file conflicts based on history instead of timestamp.
  3. Only transfer content delta to the server. Interrupted transfers can be resumed.
  4. Sync with two or more servers.
  5. Sync with existing folders.

File sharing and collaboration

  1. Sharing folders between users or into groups.
  2. Download links with password protection
  3. Upload links
  4. Version control

Drive client

  • Access all files in the cloud via virtual drive.
  • Files are synced on demand.

Privacy protection

  1. Library encryption with a user chosen password.
  2. Client side encryption when using the desktop syncing.

Online documents and knowledge management (New)

  • Online Markdown editing in WYSIWYG way
  • A draft review workflow for online documents
  • Metadata management, including
    • File labels
    • Related documents
  • Wiki mode
  • Realtime notifications

Source repositories for Seafile components

Each component of Seafile has its own source code repository on Github.

Before version 6.0, the source code of "sync client daemon" and "server core" was mixed together in https://github.com/haiwen/seafile. But after 6.0 version, the server core is separated into its own repository. For this reason, the sync client daemon repository is still the "front page" for Seafile project on Github.

Build and Run

See https://manual.seafile.com/build_seafile/server

Bug and Feature Request Reports

Please only submit bugs in GitHub issues (Pro customers should contact us via Email):

Feature requests can be made and installation/usage problems can be discussed in the forum https://forum.seafile.com/.

Internationalization (I18n)

Change Logs

See https://manual.seafile.com/changelog/server-changelog/

Why Open Source

Our primary goal is to build a first-class product. We think this goal can only be achieved by collaborating with the whole world.

Contributing

For more information read Contribution.

License

  • Seafile iOS client: Apache License v2
  • Seafile Android client: GPLv3
  • Desktop syncing client (this repository): GPLv2
  • Seafile Server core: AGPLv3
  • Seahub (Seafile server Web UI): Apache License v2

Contact

Twitter: @seafile https://twitter.com/seafile

Forum: https://forum.seafile.com

seafile's People

Contributors

1resu avatar bhughes339 avatar caixiangyue avatar dmvieira avatar etjossem avatar feiniks avatar freeplant avatar imwhatiam avatar killing avatar lins05 avatar llj avatar ly1217 avatar man0lis avatar matejc avatar maxigas avatar mlq avatar monksy avatar moschlar avatar pi3r1k avatar poetwang avatar rumtid avatar schwindp avatar shoeper avatar spacemule avatar spiritquaddicted avatar sun20121818 avatar sunyuzhao avatar swpd avatar thewilli avatar xiez 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  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

seafile's Issues

Windows client does not work

Set it seafile server on a local network (used the binaries), created a project and tried the initial sync. The client seems to stops at 'connecting server'

LDAP support

It would be nice to have a LDAP support to authenticate users instead of manually create each user.

Auto merging failes if there are .git dirs in library

First I want to thank you for this great piece of software. Much better sync than OwnCloud and great improvements over SparkleShare (large files...)
I followed these steps

  • Sync some old existing folder with seafile. everything seemed to work as expected. Seafile reported "synchronized". There was NO error notification.
  • Adding and modifying files worked fine
  • I've used the auto merging feature by adding some folder with a text file, removing it only and modifying it local. Usually the local, modified version would be restored with the "Auto Merge" notice.
  • This time Seafile reported "synced" but the file hasn't been synced
  • Adding and modifying and other files resulted in a "Library "XX" synchronized" message but nothing has been synchronized since than.

For the broken library, Seafile notified every few seconds that the library "XXXX" has been synchronized.

I had a look at the log. Every time, when it notices " "XXXX" has been synchronized" I get the following log output (Note: Its displayed without having changed anything in the library):

[12/12/12 20:39:52] [12/12/12 20:39:21] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'initializing' to 'merging'.
[12/12/12 20:39:22] sync-mgr.c(576): [sync mgr] Worktree is not clean. Skip merging repo Studium(d60834fa).
[12/12/12 20:39:22] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'merging' to 'synchronized'.

When I try to add any file to the repo I get the following output:

[12/12/12 20:40:34] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'synchronized' to 'commiting'.
[12/12/12 20:40:34] Invalid path 'folder1/folder2/folder3/.git/config'
[12/12/12 20:40:34] unable to add folder1/folder2/folder3/.git/config to index
[12/12/12 20:40:34] Invalid path 'folder1/folder2/folder3/.git/description'
[12/12/12 20:40:34] unable to add folder1/folder2/folder3/.git/description to index
[12/12/12 20:40:34] Invalid path 'folder1/folder2/folder3/.git/HEAD'
--- SEVERAL MORE OF THIS- I think the message is clear :) ---
[12/12/12 20:40:36] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'commiting' to 'initializing'.
[12/12/12 20:40:36] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'initializing' to 'merging'.
[12/12/12 20:40:36] sync-mgr.c(576): [sync mgr] Worktree is not clean. Skip merging repo XXXX(d60834fa).
[12/12/12 20:40:36] sync-mgr.c(414): Repo 'XXXX' sync state transition from 'merging' to 'synchronized'.

There seems to be several problems:

  • Syncing local GIT repositories seems to be a problem
  • The user does not get an error notification when syncing some files and folders fails (I didn't realized that syncing the git repo failed before having a look to the log)
  • Modifications where synced also with the failed git repo sync - I haven't noticed any problems
  • Auto merging seems to fail if there are other sync problems and makes any further synchronization impossible (breaks sync completely without any visible error messages)

Removing the git repo locally fixes sync again.

Would it be possible to fix git repo synchronization? I know that this issue might be caused by the GIT technology Seafile is based on.
If not (or as a first step) it would be at least great to get a notification that folder X couldn't be synchronized because of reason Y.

I'm using Seafile server 1.3.1 on Debian squeeze and Windows client 1.3.0

Use nickname instead of email for "Shared by" on shared link page

When sharing a file by link on the linked page the full email address of the sharing user is displayed for everyone who knows the link. As there is already the possibility of setting a nickname, I would suggest to only show the nickname there as maybe someone wants to share files with public and than the public visible email address could result in a lot of spam...

At least it would be great to have this configurable in the "System admin" section or config files. For now I simply remove it by hand from the template file.

seaf-daemon.exe crashing on 'merging'

I have Seafile at my WinXP VM and seaf-daemon.exe crashing on 'merging'
Here what I have in my seafile.log:

[12/17/12 10:26:35] ../common/mq-mgr.c(60): [mq client] mq cilent is started
[12/17/12 10:26:35] ../common/mq-mgr.c(106): [mq mgr] publish to hearbeat mq: seafile.heartbeat
[12/17/12 10:26:35] GC started. Total block number is 546.
[12/17/12 10:26:35] GC index size is 1024 Byte.
[12/17/12 10:26:35] Pupulating index.
[12/17/12 10:26:35] Scanning and deleting unused blocks.
[12/17/12 10:26:35] GC finished. 0 blocks are removed.
[12/17/12 10:27:06] sync-mgr.c(414): Repo 'Reponame' sync state transition from 'initializing' to 'merging'.
[12/17/12 10:29:09] ../common/mq-mgr.c(60): [mq client] mq cilent is started
[12/17/12 10:29:09] ../common/mq-mgr.c(106): [mq mgr] publish to hearbeat mq: seafile.heartbeat
[12/17/12 10:29:09] GC started. Total block number is 547.
[12/17/12 10:29:09] GC index size is 1024 Byte.
[12/17/12 10:29:09] Pupulating index.
[12/17/12 10:29:09] Scanning and deleting unused blocks.
[12/17/12 10:29:09] GC finished. 1 blocks are removed.
[12/17/12 10:29:10] sync-mgr.c(414): Repo 'Reponame' sync state transition from 'initializing' to 'merging'.
[12/17/12 10:31:39] ../common/mq-mgr.c(60): [mq client] mq cilent is started
[12/17/12 10:31:39] ../common/mq-mgr.c(106): [mq mgr] publish to hearbeat mq: seafile.heartbeat
[12/17/12 10:31:39] GC started. Total block number is 546.
[12/17/12 10:31:39] GC index size is 1024 Byte.
[12/17/12 10:31:39] Pupulating index.
[12/17/12 10:31:39] Scanning and deleting unused blocks.
[12/17/12 10:31:39] GC finished. 0 blocks are removed.
[12/17/12 10:31:40] sync-mgr.c(414): Repo 'Reponame' sync state transition from 'initializing' to 'merging'.

and so on.

Also windows shows me this window:
fb56_001

[web] Integrate PDF viewer

It would be great to have PDF view support fort shared and private files. This could be achieved with pdf.js - a great PDF viewer written in JavaScript with full-screen mode, page preview, zoom...

Its open source and MIT licensed which should be compatible with GPL3.

http://mozilla.github.com/pdf.js/

Client binary doesn't build from source on Arch Linux

It doesn't seem to work on Arch.

I think it is because Arch uses Python 3.3.0 as "python"

make[2]: Entering directory `/home/albert/Downloads/libsearpc-  1.0.1/demo'
[libsearpc]: generating rpc header files
python ../lib/searpc-codegen.py ../demo/rpc_table.py
    File "../lib/searpc-codegen.py", line 185
       print "load func_table from %s" % (abspath)
                                     ^

judging from this error it can (maybe) be resolved by changing all instances of "python" in the the source files to python2.7

Display link to local Seafile server when trying to redirect

When running seahub with SSL some browsers (Google Chrome, Internet Explorer 10...) do not redirect to the local seafile server as it's connection is not secure. The user has to manually allow the insecure connection every time which is very confusing as Google Chrome does not show a dialog but only displays a tiny icon in the address bar.

Even more confusing is the "Open local file" button. When clicking it, "Seafile client is not started or out of date" is displayed in an overlay. When allowing "insecure contents" in Chrome/IE, the overlay simply disappears. The user has to click "Open local file" again and the file will be opened...

I think this is caused, because the verification of availablity is done with javascript/invisible image... to the insecure local URL which makes it difficult to fix without loosing the check

It would be great to see this fixed in any way. Maybe by doing the check with flash? Or better having more than one method (if browser does not complain => use current method, if flash installed => use flash, if nothing works => display message with href to localhost url)

But even without changing the method itself there is a simple workaround: Instead of just showing the "Seafile client not started..." message there could be a link to the URL to manually open it.

Add seafile httpserver ssl options to setup and start scripts

(EDITED, old version with some more toughs: http://pastebin.com/1XJuPDPs)
After posting this as a issue to early, I had a look at the source code and was able to start "httpserver" with "-p pemfile" and "-k keyfile" option.
Now httpserver is listening on port 4433 and the connection is secured with SSL.

Sadly, this approach is not mentioned in the wiki although there is a tutorial how to enable SSL by using the deploy server. Also the start scripts (seafile.sh / seafile-admin) starts the httpserver without SSL functionality and does not offer parameters to not start httpserver or add some parameters.

I think having a secure download connection is very important as other people in the same network could easily capture packages and would be able to download private files - even from encrypted libraries as the session could be hijacked!

Thats why I think SSL settings should be added (as an option) to the setup procedure of seafile-setup executable and the starter scripts and be mentioned in the wiki.

Issues with "+" sign in email address

Steps to reproduce:

  • Try to share a library with a not registered email address which includes a "+" sign. E.g [email protected]
  • Sharing failed message appears but strangely still the share has been created and the email has been added as a contact (this is the same for email addresses without "+" sign - bug or feature?)
  • Deleting the share and/or contact fails! When clicking "delete" there is a message "Successfully removed share" or "Deleting successfully" but the share and user are still in the list.

Now I have some shares in my list and I'm unable to remove them...

A file doesn't upload if encryption is enabled

Hello, I think found a strange bug.

I tried uploading a 1-5 MB file with encryption enabled in client.
It seems to work on machines which are in local network with the server, but it doesn't work from other computers. It just gets stuck at "uploading" message, sometimes it shows a very low speed but for the most part it doesn't.
As soon as I disabled the encryption uploading changes went just fine. But I'd like to use encryption for transferring anyways...

BSD support

Check how much work have to be done to compile Seafile server on BSD.

use unicode API on windows

Currently all windows related code use the ANSI version windows API. It would be problematic in some cases. For example, it would fail to call directory watching API for a directory containing Chinese characters on a English version of Windows.

[seafile] Improve efficiency of block GC algorithm

Current algorithm does too much redundant work to load blocks map.

This problem slows down the startup of seafile client, since it will do block GC and remove blocks
already transferred to server on every startup.

Mac OS Client not working

Hi I just installed the client on Mac OS X Lion but the daemon does not get started, I get the following in my system.log when trying to start it:

Nov 27 14:01:33 ReportCrash[655]: Failed to create CSSymbolicatorRef for seafile[654]
Nov 27 14:01:33 ReportCrash[655]: Failed to create dSYM-less CSSymbolicatorRef for seafile[654]
Nov 27 14:01:33 ReportCrash[655]: Saved crash report for seafile[654] version ??? (???) to /Users/user1/Library/Logs/DiagnosticReports/seafile_2012-11-27-140133_user1.crash

The content of the crash report /Users/user1/Library/Logs/DiagnosticReports/seafile_2012-11-27-135555_user1.crash is the following:

Process: seafile [599]
Path: /Applications/seafile.app/Contents/MacOS/seafile
Identifier: seafile
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: seafile [596]

Date/Time: 2012-11-27 13:55:55.312 +0100
OS Version: Mac OS X 10.7.5 (11G63b)
Report Version: 9

Crashed Thread: Unknown

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fff5fc01028

Backtrace not available

Unknown thread crashed with X86 Thread State (64-bit):
rax: 0x0000000000000055 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x0000000000000000
r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
rip: 0x00007fff5fc01028 rfl: 0x0000000000010203 cr2: 0x00007fff5fc01028
Logical CPU: 2

Binary images description not available

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 762
thread_create: 1
thread_set_state: 0

This seems like a similar problem, but I do not know what to do with it:
http://stackoverflow.com/questions/11298922/failed-to-create-cssymbolicatorref

Any help is more than welcome!!!

Linker error when building

I tried to build Seafile from source as described in https://github.com/haiwen/seafile/wiki/Build-and-use-seafile-client-from-source on Fedora 17 amd64.

When running make on libsearpc i get a linker error:

$ ./configure --prefix=$HOME/usr
[...]
configure: creating ./config.status
config.status: creating Makefile
config.status: creating build/Makefile
config.status: creating build/autotools/Makefile
config.status: creating json-glib/Makefile
config.status: creating json-glib/json-version.h
config.status: creating json-glib/tests/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

 Json-GLib - 0.14.2 (release)

 • Prefix: /home/johannes/usr

 • Debug level: minimum
 • Compiler flags: -g -O2


 • Enable test suite: yes

$ make
[...]
make[3]: Entering directory `/home/johannes/src/libsearpc-1.0.1/demo'
gcc -DHAVE_CONFIG_H -I. -I..    -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../lib -I../json-glib -g -O2 -MT searpc-demo-server.o -MD -MP -MF .deps/searpc-demo-server.Tpo -c -o searpc-demo-server.o searpc-demo-server.c
mv -f .deps/searpc-demo-server.Tpo .deps/searpc-demo-server.Po
/bin/sh ../libtool --tag=CC   --mode=link gcc -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../lib -I../json-glib -g -O2   -o searpc-demo-server searpc-demo-server.o ../lib/libsearpc.la -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include ../json-glib/json-glib/libsearpc-json-glib.la 
libtool: link: gcc -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../lib -I../json-glib -g -O2 -o .libs/searpc-demo-server searpc-demo-server.o -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  ../lib/.libs/libsearpc.so ../json-glib/json-glib/.libs/libsearpc-json-glib.so -pthread -Wl,-rpath -Wl,/home/johannes/usr/lib
/usr/bin/ld: searpc-demo-server.o: undefined reference to symbol 'g_type_init'
/usr/bin/ld: note: 'g_type_init' is defined in DSO /lib64/libgobject-2.0.so.0 so try adding it to the linker command line
/lib64/libgobject-2.0.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[3]: *** [searpc-demo-server] Fehler 1
make[3]: Leaving directory `/home/johannes/src/libsearpc-1.0.1/demo'
make[2]: *** [all] Fehler 2
make[2]: Leaving directory `/home/johannes/src/libsearpc-1.0.1/demo'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/johannes/src/libsearpc-1.0.1'
make: *** [all] Fehler 2

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.