Overview

yamiMFTX Server is a self-hosted solution for managed file transfer, file sharing and file exchange on an ad hoc basis. It allows easily upload files via any modern browser, share and download files with your colleges, partners and customers. It can be used to share files inside your company for only in-house work or for sharing files with your clients.

yamiMFTX Server has the following features:

  • access to files from anywhere;

  • managed access to files;

  • support of uploading large files (tens of gigabytes or more);

  • simultaneous and resumable uploading;

  • administer the server through a web interface;

  • uploading and downloading files via http/https;

  • self-hosted solution behind the firewall.

Concepts

In yamiMFTX Server there are three predefined roles for users. The role "Power users" is recommended for company’s employees, since they are able to see the list of registered users and groups. The role "User" is recommended for partners, clients.

The table below shows possible allowed actions for the roles.

Operations/Roles Administrator Power User User

Managing users, groups and files

v

Viewing users and groups

v

v

Uploading files

v

v

Downloading files

v

v

v

Restricting access to own files by time, number of downloads

v

v

Managing access to own files using groups and users

v

Making files available by public link

v

v

v

Managing access to any file

v

Deleting any files

v

Deleting own files

n/a

v

v

Contents of package

The yamiMFTX package consists of:

  • yamiMFTX Server files;

  • nginx configuration file;

  • script for starting yamiMFTX server at operation system startup.

Software requirements

Operating systems supported

Linux 64-bit distribution. Recommended distributions: Debian 7.x, 8.x Ubuntu 12.04, 14.04 and higher

Languages supported

English

Database

Postgresql 9.1 or higer

Web-server

Nginx and node.js 0.10.23 or higher

Hardware requirements

  • at least 2 vCPU for virtualized enviroments;

  • 1 Gb RAM;

  • at least 250 MB disk space. Disk space depends on the amount and size of files, which will be stored on the server.

Client Requirements

Browsers:

  • Chrome v.31 and later

  • Firefox v.30 and later

  • Opera v.15 and later

  • Safari v.6.1 and later

  • Internet Explorer v.10

Virtual appliance

Virtual appliance contains a Linux operating system and a fully configured yamiMFTX Server. Running virtual appliance requires VMware hypervisor (Workstation Player, Workstation Pro or ESXi)

Default Linux login information (Please change to avoid unauthorized access):

Username: root
Password: toor

Default yamiMFTX Server login information:

Username: admin
Password: toor

If you choose virtual appliance you can skip next section

Installation

Installation procedure is described for Debian and Ubuntu distributives. On other distributives the procedure may vary.

Step 1. Unpacking files.

Unpack archive to directory /opt. After the unpacking you will have all files in /opt/yamimftx

Step 2. Installing required software

Install postgres database, nginx web server:

sudo apt-get -y install nginx postgresql curl

Install node.js server:

curl -sL https://deb.nodesource.com/setup | sudo bash -
curl -L https://npmjs.org/install.sh | sh
sudo apt-get install nodejs
Step 3. Copying startup scripts and enabling starting yamimftx server services at startup
sudo cp /opt/yamimftx/install/yamimftx /etc/init.d/yamimftx
sudo update-rc.d yamimftx defaults
Step 4. Creating and preparing database, configuring database settings

Create postgresql user with command:

sudo -u postgres createuser -D -R -S -P username

The username is postgresql role to use when connecting to the database. Create database and make user username the owner of database:

sudo -u postgres createdb databasename  -O username

In file /opt/yamimftx/settings/local.py edit variables name, user, password. Load initial data to database:

sudo -u www-data venv/bin/python manage.py migrate
Step 5. Configuring nginx and starting site

Edit the file “/opt/yamimftx/conf/nginx.conf”. Change variables:

  • server_name;

  • listen port.

Enable new site:

sudo ln -s /opt/yamimftx/conf/nginx.conf /etc/nginx/sites-enabled/yamimftx
sudo service nginx reload

Start services:

sudo service yamimftx start

Your Yamimftx server is ready. Use default username "admin" and password "toor".

Settings

Nginx settings

yamiMFTX server is supplied with configuration file for nginx web server. Nginx configuration file is placed in /opt/yamimftx/conf/nginx.conf. You need customize only several variables for correct work of your yamiMFTX Server instance.

Variable Description

server_name

Fully-qualified domain name of your server instance. Default: store.yamimftx.local

SSL settings

Uncomment these settings if you wish to use ssl. Default: off, commented

Alias in “location /storage/”

Path to folder where uploaded files are stored. Must point to the same folder as MEDIA_ROOT in settings/local.py

Server settings

Instance specific settings are stored in /opt/yamimftx/settings/local.py file.

Variable Description

Database

Settings for configuring connection to database server. You need to change the following variables:

  • name – the name of database

  • user – database user (must be owner of the database)

  • password – password for database user

  • host – database server name or ip.

MEDIA_ROOT

Path to folder where uploaded files are stored. Must point to the same folder as variable Alias in “location /storage/” of nginx config file.

Secret key

This is used to provide cryptographic signing, and should be set to a unique, unpredictable value.

DEBUG

This is required for troubleshooting. Not used in normal operation. Default – false.

SESSION_COOKIE_AGE

The age of session in seconds. Default: 14400 seconds (4 hours).

User management

Users must be authenticated in order to:

  • upload files;

  • download files without public access.

Administrators perform user management tasks from Users, Groups sections of the administrative interface.

There are three predefined roles which user can belong to. User can belong only to one role at the same time. The table below shows possible allowed actions for the roles.

Operations/Roles Administrator Power User User

Managing users, groups and files

v

Viewing users and groups

v

v

Uploading files

v

v

Downloading files

v

v

v

Restricting access to own files by time, number of downloads

v

v

Managing access to own files using groups and users

v

Making files available by public link

v

v

v

Managing access to any file

v

Deleting any files

v

Deleting own files

n/a

v

v

Adding a new user

To register a new user you need to fill in at least two required fields:

  • login

  • password

Login must be must be unique and cannot be changed after registering new user. Other fields are optional and can be filled in later.

Important
The field “notes” is visible only for administrators. Put here any comments and additional information.

By default checkboxes “power user” and “administrator” are unchecked which means that the new user belongs to role “User”.

To assign role “power user” please check checkbox “power user”. The similar action must be done to assign the role “administrator”.

Later any user can change the following properties of his own account via account settings dialog:

  • first name;

  • last name;

  • password;

  • email.

Groups

Groups allow to organize Users by whatever criteria you see fit. Groups are used when granting permission to download files.

Managing files

Administrators see all uploaded files of all users and can change any properties of files regardless they are owners of files or not. How to manage access to files see section “Managing access to own files” of the "User Guide"