Skip to main content

Configuration

Startup configuration

At the first start of the application you can login with this accounts:

UserPasswordDescription
rootrootMaster account, with all rights ( right of manage on
the object application ). You must change his password !
This account can be deleted after giving rights to somebody else.
alicealiceA normal user. usable for testing.
bobbobA normal user. usable for testing.
charliecharlieA normal user. usable for testing.

All those users can be deleted.

Application configuration

All the application can be access by the Menu (left up button), then Administration, then Configuration.

This menu and the ability to modify the configuration is attach to the right of manage on the object application. The first configured user with this right is root.

General

FieldDescriptionComment
InstanceInstance nameThis field cannot be changed. It is just for information on the name of the instance.
The application NameApplication's nameYou can change here the application name in the main menu (top bar).
A subtitleSubtitleNot used.
Tel for contactA phone numberIn the signature of all emails, this is the contact phone number
Email contactAn emailIn the signature of all emails, this is the email for contact
LogoAn imageYou can upload an image (any format) for the logo. The image will be reduced and resize to fit the logo size.
FaviconAn imageYou can upload an icon (with the icon format .ico) to customize the favicon in web browsers
Pooling interval DelayThis is the cron pooling delay for emails and purge of DB, it can be a number followed by s (second) m(minutes)

Notifications

This is the notification (chat between users and information from server) configuration.

FieldDescriptionComment
Expirationa delayHow much time you will keep any notifications. 0 mean no expiration.

Server

This is the server configuration.

FieldDescriptionComment
websocketstrue or falseSay if you want websockets for speedup transfer. In some installations, websocket can be filtered
Default IP restrictionIP Address CIDR FormatSelect "accept" or "Deny". This system to filter connections by IP

Rights

In this section, you can affect rights to specific groups, elements are clear enough to not go into the details for each one. Just understand that these rights are for the entire application.

Groups for validation

You can specify here a group which will validate any invitation.

Chat

FieldDescriptionComment
enabledenable the chat functionThis is activated by default, but you can disabled the chat if you want to.

Authentications

By default two authentication methods are configured : local and google. But two others can by added which are : LDAP and AD.

Obviously, if you decide to work with LDAP, AD or Google authentications, users we'll be prompt at sign-up for a key passphrase. This passphrase is different from the authentication password, if a user loose his passphrase, he'll be able to connect to the application but will not be able to access any encrypted data.

For each of the following authentication type, you'll find these parameters :

FieldDescriptionComment
TypeType of authenticationIs one of the available methods
enabledenable or disable this authentication type
Groups by defaultfallback group of all new usersAll new users will be part of this group

Local

Configuration fields for local authentication are :

FieldDescriptionComment
self signing users
enableenable / disable for self signing usersby default, it is set to true, you can disable it to forbid user to signing
expirationset the expiration delay for self signing users0 by default (no expiration)
groups by defaultDestination group for self signing usersNo groups by default
invited users
expirationset the expiration delay for invited users0 by default (no expiration)
groups by defaultDestination group for invited usersNo groups by default

Google

So, the application can use external authentication (oauth2). The google authentication can be set up in this place

  • google authentication

first you must set up for your server a Identity provider. Go in google development interface :

https://console.developers.google.com/apis/

and fill a new identity with the following elements

  1. Create an Id client Oauth
  2. Select Application web
  3. fill the following fields :
FieldDescription
NameA name for this Oauth2 provider
javascript originYour Server (example https://drive.lybero.net)
callback redirectthe callback URL , your server/oauthcallback (example https://drive.lybero.net/oauthcallback)

And Google provides you two fields clientId and a client Secret:

Then you can enter in the configuration :

FieldDescriptionComment
The clientID provided by GoogleclientIdprovided by Google
The client secret provided by Googleclient Secretprovided by Google

WARNING Do not change the Url for connection and Callback url parameters unless you really know what you're doing.

LDAP

FieldDescriptionComment
Url for connection - endpointEndpoint in applicationDo not change this setting this parameter will be removed in a future update
Url for connectiontypically ldap://Url for connection to your LDAP
bindDNdomain namelike dc=example,dc=com
bindCredentialsthe credentials for the app to authenticate
searchBasethe search base of your LDAP users
searchFilterthe search filterto limit access
searchAttributes
tlsOptions
FieldDescriptionComment
Url for connection
baseDN
username
password

Mail

This is the email server configuration, for sending emails (SMTP).

  • connexion configure the way to contact the email server (SMTP protocol)
FieldDescriptionComment
Hosthostname or IP addressThe SMTP server accepting connection from the app.
Portport number25, 587 or 465 in general.
Secureif you are using TLSif true the connection will use TLS when connecting to server. If false (then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false
ignoreTLSrefuse server TLSif this is true and secure is false then TLS is not used even if the server supports STARTTLS extension
auth Userthe usernameIn case of a authenticated SMTP communication, the userName
auth Passwordthe passwordIn case of a authenticated SMTP communication, the user password
tls rejectUnauthorizedreject unknown certificatesIf not false the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.
FieldDescriptionComment
Subject prefixPrefix in any subjectsYou can add this string in the subject field (can be used for filtering by user)
fromfrom email fieldemil from
replyToreplyTo email fieldreplyTo email field
Digest delaydelaydelay for digest email

Error report configuration

You have the hability to send reports on application bug directly... where you want. Actually, only a Mattermost is available.

if you enable this feature, if a javascript bug occured, on a client or on the server, a report is pushed into a slack channel.

FieldDescriptionComment
enableToggle to yes for enabling it
slack webhookURLthe URL provided by your slack configurationit define the channel to post on your team slack configuration

For sending your bugs directly to lybero.net, you can use this mattermost webhookURL :

https://mattermost.lybero.net/hooks/epp6ohionjgizpuqgog67xcrph

Theme

This part grant you the possibility to change some colors of Crypt n Drive, in order to keep it readable for everyone, we have a limited amount of possibilities, but this may change in a future update, to let you customize the app a little bit more.

In this section, get on one theme name and click the arrow to unfold properties.

FieldComment
Primary colormain accent of the app, in the top bar, the left menu
Secondary colorcolor for errors, suppression buttons
Other colors
encrypted vaultsmain accent in the "vaults" section (root of the app)
decrypted vaultsnot used
invitationscolor of the invitation badge
quorumsmain accent in the quorum section
groupsmain accent in the groups section
usersmain accent in the users section

Server Logs

All logs are managed by rsyslogd on the server. You can found it at

/var/log/<instance name>.log

Error reporting

Error reporting is usefull to find bugs on exotic configurations (browsers, architectures), wich cannot be tested in lab before publishing.

You can setup error reporting to lybero.net directly and permanently, or to your own server, or just during a debbuging session. as you want.

No sensitive datas are in the report (no password, passphrases, keys, files, etc...). only informations on the browser, the architecture, and the code file / line in trouble.

The error report contain the following information and nothing more (this is an example) :

<hostname>/<instanceName>
blob is undefined{
"navigator": {
"appCodeName": "Mozilla",
"appName": "Netscape",
"appVersion": "5.0 (X11)",
"cookieEnabled": true,
"language": "fr",
"oscpu": "Linux x86_64",
"product": "Gecko",
"userAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
},
"builder": "wallrich",
"commit": "e1f0fc3",
"builderhost": "kryha",
"server": {
"server": "kryha",
"instance": "developement",
"builder": "wallrich",
"commit": "e1f0fc3",
"builderhost": "kryha",
"login": "ANONYMOUS",
"userId": "0"
}
}

Mongodb backup

All datas (encrypted and clear ones) are stored in the mongodb database. The database must be backuped by any possible way.

We provide on tools for backup and one tool fore recover, based on mongodump and mongorestore

backup

backup can be done localy or via ssh on a remote server. You must provide basicaly the uri of the mongodb for reading, and the destination path for backup (and the ssh server if you want send them to a remote server).

script/backup.sh --help

for help on the backup tool

Making a full backup

A full (total) backup is a complete backup.

# local
sudo script/backup.sh --uri mongodb://localhost:27017/test /mnt/backup

# remote
sudo script/backup.sh --uri mongodb://localhost:27017/test --ssh=borg@borg /home/borg/mongoBackup

Will do a full backup at the place given in parameter. It return a timestamp needed for the next backup, the incremental one.

this is the following message :

Done

Backup done at 1586289229000 (in miliseconds). Use it for next backup (-t 1586289229000).

Making a incremental backup

An incremental backup is a diff from a previous backup. You must provide the timestamp of the previous backup to do an incremental one :

# local
$ sudo script/backup.sh -t 1586289229000 --uri mongodb://localhost:27017/test /mnt/backup

# remote
$ sudo script/backup.sh --timestamp 1586289229000 --uri mongodb://localhost:27017/test --ssh=borg@borg /home/borg/mongoBackup

Will add an incremental backup at the place given in parameter. It return a timestamp needed for the next backup, the incremental one.

this is the following message :

Done

Backup done at 1586289229000 (in miliseconds). Use it for next backup (-t 1586289229000).

and so on...

restore mongodb

Restoring from backup can be done with the restore command.

list available backup

$ sudo ./scripts/restore.sh --list /tmp/backups
doing list
totale at 1586272921000
relative(1) at 1586273013000
relative(2) at 1586273328000
totale at 1586273656000

In this example, in the /tmp/backups directory, you have 2 full backup and 2 incrementals ones, each one related to the previous.

restoring

restore must be done in the same time order than backup : the full, the relative(1), relative(2), ...

$ sudo ./scripts/restore.sh -t=1586272921000 --ssh localhost --db=test /tmp/backups

will do the first recover.

the -db=test is the name of the database (even if it is in the uri)

then apply the relative(1) (-t 1586273013000 ), and so on...