Skip to content

tOkeshu/fipes

Repository files navigation

Fipes, plumbings to share files

Fipes provides you a simple way to share files with your friends.

Goals

  • Provides a small web application.
  • Easy to install, easy to launch, easy to use.
  • Doesn't keep any data about you or your files.
  • Free as in freedom.

Getting Started

Requirements

Install the project

$ git clone https://github.com/tOkeshu/fipes.git
$ cd fipes
$ git checkout -b stable v0.1.0 # last stable version
$ make

These commands should pull the Erlang dependencies.

Configure Nginx

Here is a sample configuration for nginx (you will need nginx 1.4 or later to have WebSocket proxying):

# /etc/nginx/sites-available/fipes.example.com
server {
    listen 80;
    # Or the line below if you want https
    # listen 443 ssl;

    root /path/to/fipes/public;
    index index.html index.htm;

    server_name fipes.example.com;
    server_name_in_redirect off;

    # Uncomment the lines below if you want https
    # ssl_certificate     /path/to/fipes.crt;
    # ssl_certificate_key /path/to/fipes.key;
    # ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    # ssl_ciphers         HIGH;

    location / {
        proxy_read_timeout 900;
        proxy_pass http://127.0.0.1:3473;
    }

    # We need to turn off the buffering for Server-Sent Events
    location /stats {
        proxy_buffering off;
        proxy_pass http://127.0.0.1:3473/stats;
    }

    # WebSocket proxying (requires nginx 1.4 or later)
    location ~ /fipes/([^/]+)$ {
        proxy_read_timeout 900;

        proxy_http_version 1.1;
        proxy_pass http://127.0.0.1:3473/fipes/$1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

    # Uncomment the lines below if you want to launch the js tests
    #
    # location /tests/ {
    #     proxy_pass http://127.0.0.1:3473/tests.html;
    # }
}

# You may want to uncomment the lines below to always redirect
# http to https
# server {
#     listen 80;
#     server_name fipes.example.com;
#     # Redirect http to https
#     rewrite ^ https://$server_name$request_uri? permanent;
# }

Enable your site:

$ sudo ln -s /etc/nginx/sites-available/fipes.example.com /etc/nginx/sites-enabled/fipes.example.com
$ sudo /etc/init.d/nginx reload

Start the server

$ cd fipes
$ make start # start the server as a daemon on port 3473

Then open a browser to http://fipes.example.com (where fipes.example.com is your domain).

If you just want to test the application on your machine, just edit your /etc/hosts:

# /etc/hosts
127.0.1.1	fipes.example.com

and launch the server with:

$ make dev

Bugs/Pitfalls

  • Fipes is not p2p. However no data is stored on the server ever. The data just pass through the server, that's all.

  • Reloading the page while you're in a Fipe will stops the browser from serving your files. This is normal as the JavaScript File objects are lost while refreshing the page. You'll have to offers these files again.

  • For now, anyone can enter a Fipe.

Contribute

See CONTRIBUTING.md in this repository for the contributing guidelines.

What about the name

Fipes is a Portmanteau word combined from the two words file and pipes. In other words, Fipes can be seen as a pipe for files.

License

Fipes is released under the terms of the GNU Affero General Public License v3 or later.

About

Plumbings to share files with your friends.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •