Code Monkey home page Code Monkey logo

shadowcloud's Introduction

shadowcloud Build Status codecov.io

shadowcloud is an enhanced cloud storage client. Download last release

Статья на русском: https://habr.com/post/428523/ Files view

Features

  • Allows to use different storages as one "drive" (virtual region)
  • Enables random file access, media streaming
  • Removes limits on file size, file names, etc
  • Full encryption by default
  • Checksums
  • Deduplication
  • File and directory versioning
  • Generates previews
  • Extracts documents content and metadata
  • Markdown notes
  • Easy web pages archiving
  • FUSE emulated file system (experimental, requires fuse, osxfuse or winfsp)
  • In-mem cache
  • Almost everything is customizable (see reference.conf)

How to use

  • Open http://localhost:1911/, switch to Regions tab
  • Generate new key (copy and save output)
  • Add your cloud storage
    • Example Dropbox configuration:
    credentials.login="[email protected]"
    type=dropbox
    
    • Example Yandex.Disk configuration:
    address.uri="https://webdav.yandex.com"
    credentials {
      login="johndoe"
      password="123456"
    }
    type=webdav
    
  • Create a region and attach storages to it
  • Switch to Folders tab and upload your files

Regions view

Synchronization

  • Import previously generated key on the second device
  • Create region with a same id and storages set (or use the export/import feature)

How to archive web page

shadowcloud uses webzinc to capture web pages in a single HTML file.

Page will be bundled with all of the embedded resources, allowing you to read it even if the original website goes down.

  • Open Upload form in the web interface
  • Select "Paste text"
  • Paste URL in the form and click Submit

rclone integration

If you have configured a rclone drive, you can run rclone mount drive123:/ /mnt/example, and then point the shadowcloud to this location:

address.uri="file:////mnt/example"
type=files

Google Drive quota exceeded error

You can bypass quota error by creating your own API key.

  1. Create API credentials as described here: https://rclone.org/drive/#making-your-own-client-id
  2. Paste your client_id and secret into the storage props in Web UI:
config.gdrive.oauth.secrets.installed {
  "client_id" = "YOUR_ID"
  "client_secret" = "YOUR_SECRET"
}

2.1: Or paste into your global ~/.shadowcloud/shadowcloud.conf:

shadowcloud.storage.gdrive.oauth.secrets.installed {
  "client_id" = "YOUR_ID"
  "client_secret" = "YOUR_SECRET"
}

How to configure Telegram (free+unlimited!) storage

  1. You should have Python 3 installed on your system: https://www.python.org/downloads/ and also the pip package installer: https://pip.pypa.io/en/stable/installing/
  2. Install required packages with pip (executable can be pip3 or pip depending on OS, on Windows it's most likely pip):
    • Linux/MacOS:
    sudo pip3 install "Telethon>=1.14.0" "cryptg==0.2.post1" "Quart>=0.12.0" "Hypercorn>=0.9.5" "lz4==3.1.0" "pytz>=2020.1"
    • Windows:
    pip install "Telethon>=1.14.0" "cryptg==0.2.post1" "Quart>=0.12.0" "Hypercorn>=0.9.5" "lz4==3.1.0" "pytz>=2020.1"
  3. Create storage with type=telegram and follow instructions

Plugins

Full list of currently supported algorithms (some requires libsodium):

Storages: dropbox, files, gdrive, mailrucloud, memory, webdav
Encryption: AES/CBC, AES/CCM, AES/CFB, AES/CTR, AES/EAX, AES/GCM, AES/OCB, AES/OFB, Blowfish/CBC, Blowfish/CFB, Blowfish/CTR, Blowfish/OFB, CAST5/CBC, CAST5/CFB, CAST5/CTR, CAST5/OFB, CAST6/CBC, CAST6/CCM, CAST6/CFB, CAST6/CTR, CAST6/EAX, CAST6/GCM, CAST6/OCB, CAST6/OFB, Camellia/CBC, Camellia/CCM, Camellia/CFB, Camellia/CTR, Camellia/EAX, Camellia/GCM, Camellia/OCB, Camellia/OFB, ChaCha20, ChaCha20/Poly1305, DES/CBC, DES/CFB, DES/CTR, DES/OFB, DESede/CBC, DESede/CFB, DESede/CTR, DESede/OFB, ECIES, GOST28147/CBC, GOST28147/CFB, GOST28147/CTR, GOST28147/OFB, IDEA/CBC, IDEA/CFB, IDEA/CTR, IDEA/OFB, Noekeon/CBC, Noekeon/CCM, Noekeon/CFB, Noekeon/CTR, Noekeon/EAX, Noekeon/GCM, Noekeon/OCB, Noekeon/OFB, RC2/CBC, RC2/CFB, RC2/CTR, RC2/OFB, RC6/CBC, RC6/CCM, RC6/CFB, RC6/CTR, RC6/EAX, RC6/GCM, RC6/OCB, RC6/OFB, RSA, Rijndael/CBC, Rijndael/CCM, Rijndael/CFB, Rijndael/CTR, Rijndael/EAX, Rijndael/GCM, Rijndael/OCB, Rijndael/OFB, SEED/CBC, SEED/CCM, SEED/CFB, SEED/CTR, SEED/EAX, SEED/GCM, SEED/OCB, SEED/OFB, Salsa20, Serpent/CBC, Serpent/CCM, Serpent/CFB, Serpent/CTR, Serpent/EAX, Serpent/GCM, Serpent/OCB, Serpent/OFB, Shacal2/CBC, Shacal2/CFB, Shacal2/CTR, Shacal2/OFB, Skipjack/CBC, Skipjack/CFB, Skipjack/CTR, Skipjack/OFB, TEA/CBC, TEA/CFB, TEA/CTR, TEA/OFB, Threefish/CBC, Threefish/CFB, Threefish/CTR, Threefish/OFB, Twofish/CBC, Twofish/CCM, Twofish/CFB, Twofish/CTR, Twofish/EAX, Twofish/GCM, Twofish/OCB, Twofish/OFB, X25519+XSalsa20/Poly1305, XSalsa20, XSalsa20/Poly1305, XTEA/CBC, XTEA/CFB, XTEA/CTR, XTEA/OFB
Signatures: ECDSA, Ed25519, RSA
Hashing: Blake2b, GOST3411, Keccak, MD2, MD4, MD5, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA1, SHA224, SHA256, SHA3, SHA384, SHA512, SM3, Skein, Tiger, Whirlpool

Docker image

Docker

Docker image is available at https://hub.docker.com/r/karasiq/shadowcloud/

Usage example:

docker run -v ~/.shadowcloud:/opt/docker/sc -p 1911:1911 -i -t karasiq/shadowcloud:latest

With FUSE drive:

docker run -v ~/.shadowcloud:/opt/docker/sc -v ~/sc:/opt/docker/sc-drive --device /dev/fuse --cap-add SYS_ADMIN -p 1911:1911 -i karasiq/shadowcloud:latest

shadowcloud's People

Contributors

catsand avatar karasiq avatar scala-steward 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

shadowcloud's Issues

What password should i use

docker run -v ~/.shadowcloud:/opt/docker/sc -p 1911:1911 -i -t karasiq/shadowcloud:latest

in console:
13:13:27.072 [shadowcloud-akka.actor.default-dispatcher-3] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
Enter password (persistence.h2.password):
What password should i use?
Then follow
13:16:25.326 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{user=sa, url=jdbc:h2:file:/opt/docker/sc/shadowcloud;COMPRESS=true;CIPHER=AES;INIT=RUNSCRIPT FROM 'classpath:sc-persistence-h2-init.sql', password=}
and then follow
org.h2.message.DbException: Log file error: "/opt/docker/sc/shadowcloud.trace.db", cause: "java.io.FileNotFoundException: /opt/docker/sc/shadowcloud.trace.db (Permission denied)" [90034-192]
Full stack:
Console.log

Dockerfile

Nice work!

It would be nice to have Dockerfile && official image in hub.docker.com so it could be deployed to some personal server (like NAS/RasberryPi/VPS/etc)

Only issue I can see now is javafx. It opens Display even if password is provided through configuration file.
It would be nice to have an ability to provide configuration parameters via command line (may be there is already some way?)

Here is basic Dockerfile which supposed to work (after removing opening X display):

FROM openjdk:8-jre-alpine

RUN addgroup -S shadowcloud && \
	adduser -h /opt -S -G shadowcloud shadowcloud && \
	apk add --no-cache bash && \
	#install openjfx from https://github.com/sgerrand/alpine-pkg-java-openjfx \
	apk --no-cache add ca-certificates wget && \
	wget --quiet --output-document=/etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
	wget https://github.com/sgerrand/alpine-pkg-java-openjfx/releases/download/8.151.12-r0/java-openjfx-8.151.12-r0.apk && \
	apk add --no-cache java-openjfx-8.151.12-r0.apk
	

ADD shadowcloud /opt

USER shadowcloud

#CMD /opt/bin/shadowcloud-desktop
ENTRYPOINT /opt/bin/shadowcloud-desktop

build:

#(first, extact shadowcloud into shadowcloud directory)
$ docker build -t karasiq/shadowcloud .

Not sure what javafx is used for. If it is used only for asking for password, I would recommend to make it, at least, optional

Telegram storage not working

Hi, I can't seem to get Telegram storage to work. I have followed the instruction by putting my phone number, confirming my login, getting the "Telegram Desktop.session" and upload it in the Challanges tab. The log is spewing many errors non-stop so I'm not sure what I need to send to you, but here's some I could get anyway: https://pastebin.pl/view/f8c14781. Please let me know what you need to take a look into this. Thanks!

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.