|
|
|
## „Indie web“ заместители на публичните cloud услуги
|
|
|
|
|
|
|
|
Благо
|
|
|
|
/ https://petrovs.info
|
|
|
|
/ blagovest@petrovs.info
|
|
|
|
|
|
|
|
---
|
|
|
|
## Indie web?
|
|
|
|
* Data ownership
|
|
|
|
* Decentralization
|
|
|
|
* Federation
|
|
|
|
* Self control
|
|
|
|
* Open protocols
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
* https://indieweb.org/
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### OpenSource VS Proprietary
|
|
|
|
### Self Hosted VS Cloud
|
|
|
|
|
|
|
|
---
|
|
|
|
# Raspberry Pi
|
|
|
|
![Raspberry](images/raspberry.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Raspberry cluster
|
|
|
|
![Raspberry Cluster](images/berrycluster.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Olinuxino home server
|
|
|
|
![Olinuxino home server](images/olinuxino_server.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# HP MicroServer
|
|
|
|
|
|
|
|
![HP MicroServer](images/microserver.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Workstation/Old PC
|
|
|
|
|
|
|
|
![Workstation](images/hp_workstation.jpg)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Rack mount server
|
|
|
|
![1UServer](images/1UServer.jpg)
|
|
|
|
|
|
|
|
---
|
|
|
|
# OS: Linux/BSD, etc
|
|
|
|
|
|
|
|
---
|
|
|
|
* Virtualization : KVM/Xen
|
|
|
|
* Containers: Docker/Kubernetes, LXD
|
|
|
|
* Automation: Puppet/Ansible
|
|
|
|
|
|
|
|
---
|
|
|
|
## SandStorm (.io)
|
|
|
|
![SandCat](images/sandcat.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
![SandStorm Screenshot](images/sandstorm_screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# FreedomBox
|
|
|
|
![FreesomBox Logo](images/freedombox_logo.svg)
|
|
|
|
|
|
|
|
---
|
|
|
|
![FreedomBox Screenshot](images/freedombox_screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
![FreeNas Logo](images/freenas_logo.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
## NextCloud <img src="images/nextcloud_logo.svg" width=100 />
|
|
|
|
|
|
|
|
|
|
|
|
![NextCloud](images/nextcloud-screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# NextCloud
|
|
|
|
|
|
|
|
* File storage & Sync
|
|
|
|
* File sharing API
|
|
|
|
* Federated sharing + ActivityPub support
|
|
|
|
* Different data backends: S3, Swift, Sia, SMB, NFS...
|
|
|
|
* Additional external backends: Google Drive, Dropbox, etc..
|
|
|
|
|
|
|
|
---
|
|
|
|
# NextCloud
|
|
|
|
|
|
|
|
* Desktop & mobile sync clients
|
|
|
|
* Contacts
|
|
|
|
* Calendar
|
|
|
|
* Notes
|
|
|
|
* Collabora Office
|
|
|
|
|
|
|
|
---
|
|
|
|
# NextCloud
|
|
|
|
|
|
|
|
* Client side end-to-end encryption
|
|
|
|
* 2-Factor auth
|
|
|
|
* https://nextcloud.com/gdpr/
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
# NextCloud
|
|
|
|
## Deployment
|
|
|
|
|
|
|
|
* PHP 7.0+
|
|
|
|
* MySQL / PostgreSQL
|
|
|
|
* Redis (Optional)
|
|
|
|
* Minimal requirements: 128M RAM
|
|
|
|
* https://nextcloud.com/install/
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mastodon <img src="images/mastodon_logo.png" width="100"/>
|
|
|
|
|
|
|
|
![Mastodon](images/mastodon_screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mastodon
|
|
|
|
|
|
|
|
* Social network / Micro blogging platform
|
|
|
|
* Прилича на Twitter
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mastodon
|
|
|
|
|
|
|
|
* Federated (ActivityPub protocol / OStatus)
|
|
|
|
* Много публични инстанции: https://instances.social
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mastodon
|
|
|
|
## История
|
|
|
|
|
|
|
|
* identi.ca -> GNU Social (AGPL) -> pump.io
|
|
|
|
* Friendica, Hubzilla, Mastodon, Pleroma (OStatus)
|
|
|
|
* https://en.wikipedia.org/wiki/Fediverse
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mastodon
|
|
|
|
## Deployment
|
|
|
|
|
|
|
|
* NodeJS
|
|
|
|
* Yarn package manager
|
|
|
|
* Ruby
|
|
|
|
* PostgreSQL
|
|
|
|
* https://docs.joinmastodon.org/administration/installation/
|
|
|
|
|
|
|
|
---
|
|
|
|
# Diaspora <img src="images/diaspora_logo.png" width=100 />
|
|
|
|
![Diaspora](images/diaspora_screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# Diaspora
|
|
|
|
|
|
|
|
* Federated (Diaspora protocol)
|
|
|
|
* 1 pod per person
|
|
|
|
* Прилича на Facebook
|
|
|
|
|
|
|
|
---
|
|
|
|
# Diaspora
|
|
|
|
## Deployment
|
|
|
|
|
|
|
|
* Ruby, Ruby Gems, Bundler
|
|
|
|
* MySQL / PostgreSQL
|
|
|
|
* Redis
|
|
|
|
* libcurl, ImageMagick
|
|
|
|
|
|
|
|
---
|
|
|
|
# XMPP (Jabber)
|
|
|
|
![XMPP](images/xmpp_logo.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# XMPP
|
|
|
|
|
|
|
|
* IM/Chat, VoIP/Video calls
|
|
|
|
* Conference calls
|
|
|
|
* Federated
|
|
|
|
* Extensible (XEPs)
|
|
|
|
* XML based
|
|
|
|
|
|
|
|
---
|
|
|
|
# XMPP Clients
|
|
|
|
## Desktop
|
|
|
|
|
|
|
|
* Telepathy
|
|
|
|
* Jitsi
|
|
|
|
* Gajim
|
|
|
|
* Pidgin
|
|
|
|
|
|
|
|
---
|
|
|
|
# XMPP Clients
|
|
|
|
## Mobile - Conversations
|
|
|
|
![Conversations](images/conversations.webp)
|
|
|
|
|
|
|
|
---
|
|
|
|
# XMPP Servers
|
|
|
|
|
|
|
|
* Ejabberd
|
|
|
|
* Prosody
|
|
|
|
* OpenFire
|
|
|
|
|
|
|
|
---
|
|
|
|
# [ Matrix ]
|
|
|
|
|
|
|
|
---
|
|
|
|
# [ Matrix ]
|
|
|
|
|
|
|
|
* IM/Chat
|
|
|
|
* VoIP / Video calls
|
|
|
|
* Conference rooms
|
|
|
|
* File sharing
|
|
|
|
|
|
|
|
---
|
|
|
|
# [ Matrix ]
|
|
|
|
* Decentralized
|
|
|
|
* Federated
|
|
|
|
* Encryption by design
|
|
|
|
* HTTP/2 based
|
|
|
|
* Използва се от френското правителство
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# [ Matrix ] clients
|
|
|
|
|
|
|
|
* Riot (Desktop / Mobile)
|
|
|
|
* https://matrix.org/docs/projects/clients-matrix
|
|
|
|
|
|
|
|
---
|
|
|
|
# [ Matrix ] servers
|
|
|
|
## Synapse
|
|
|
|
|
|
|
|
---
|
|
|
|
# Mail
|
|
|
|
|
|
|
|
* Postfix, Dovecot, Spamasassin, Sendmail...
|
|
|
|
* Zentyal, Zimbra, Kolab, NethServer
|
|
|
|
|
|
|
|
---
|
|
|
|
# Libre.FM
|
|
|
|
|
|
|
|
* Last.fm clone
|
|
|
|
* ~Federated~
|
|
|
|
* Поддържа импорт от last.fm
|
|
|
|
|
|
|
|
---
|
|
|
|
# GitLab
|
|
|
|
![GitLab](images/gitlab_screenshot.png)
|
|
|
|
|
|
|
|
---
|
|
|
|
# GitLab
|
|
|
|
|
|
|
|
* Git repositories
|
|
|
|
* Repository forking
|
|
|
|
* Merge (pull) requests
|
|
|
|
* Issue tracking
|
|
|
|
|
|
|
|
---
|
|
|
|
# GitLab
|
|
|
|
|
|
|
|
* CI/CD
|
|
|
|
* Kubernetes supports
|
|
|
|
* Integrated Docker registry
|
|
|
|
|
|
|
|
# GitLab deployment
|
|
|
|
|
|
|
|
* apt-get install gitlab-ce :)
|
|
|
|
|
|
|
|
---
|
|
|
|
# 10x!
|
|
|
|
|
|
|
|
## [https://code.petrovs.info/presentations/lugbg-plovdivapril2019](https://code.petrovs.info/presentations/lugbg-plovdivapril2019)
|