Stel Firefox Sync Server in op CentOS 6

Firefox Sync is een browser-synchronisatiefunctie waarmee u uw gegevens en voorkeuren (zoals uw bladwijzers, geschiedenis, wachtwoorden, geopende tabbladen en geïnstalleerde add-ons) op al uw apparaten kunt delen. Mozilla biedt ook een applicatie voor "synchronisatieserver" voor gebruik met Firefox Sync voor gebruikers en bedrijven die liever hun eigen synchronisatiegegevens hosten. Dit artikel laat zien hoe u Mozilla Sync Server instelt.

Vereisten

Installeer de benodigde pakketten

Update het systeem:

sudo yum check-update

Om Sync Server te bouwen en uit te voeren, moet u deze pakketten installeren:

  • Mecurial
  • sqlite3
  • git
  • Python 2.6.6
  • Python 2.6.6 virtualenv
  • Python 2.6.6 SetupTools
  • Python 2.6.6 Developer Tools

Installeer de nieuwste versie van Mercurial:

sudo yum install mercurial

Installeer de vereiste ontwikkeltools en bibliotheken:

yum groupinstall 'Development Tools' 'Development Libraries'
yum install tk-devel libjpeg-devel mysql-devel python-devel httpd-devel zlib-devel bzip2-devel

Installeer SQLite3:

sudo yum install sqlite

Installeer en bouw Python 2.6.6:

cd $home
sudo wget http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz
sudo tar xzvf Python-2.6.6.tgz
cd $home/Python-2.6.6
sudo ./configure --prefix=/opt/python2.6 --enable-thread --enable-shared --enable-unicode=ucs4
sudo make
sudo make install

De server bouwen

We zullen de Git-repository van de synchronisatieserver klonen en vervolgens de map invoeren:

git clone https://github.com/mozilla-services/syncserver
cd syncserver

Voer de build-opdracht uit, die de afhankelijkheden downloadt en de code compileert:

make build

Start de synchronisatieserver en controleer of deze correct werkt:

bin/paster serve development.ini

Je ziet zoiets als dit:

Starting server in PID 5952.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

Configuratie van synchronisatieserver

De configuratie van de synchronisatieserver is heel eenvoudig, er zijn maar een paar parameters om te wijzigen in het configuratiebestand ( ./syncserver.ini).

Open het configuratiebestand met bijvoorbeeld uw favoriete teksteditor nano ./syncserver.ini.

[server:main]
use = egg:gunicorn
host = 0.0.0.0
port = 5000
workers = 1
timeout = 30

[app:main]
use = egg:syncserver

[syncserver]
# This must be edited to point to the public URL of your server,
# i.e. the URL as seen by Firefox.
public_url = http://localhost:5000/

# This defines the database in which to store all server data.
#sqluri = sqlite:////tmp/syncserver.db

# This is a secret key used for signing authentication tokens.
# It should be long and randomly-generated.
# The following command will give a suitable value on *nix systems:
#
#    head -c 20 /dev/urandom | sha1sum
#
# If not specified then the server will generate a temporary one at startup.
#secret = INSERT_SECRET_KEY_HERE

# Set this to "false" to disable new-user signups on the server.
# Only request by existing accounts will be honoured.
# allow_new_users = false

# Set this to "true" to work around a mismatch between public_url and
# the application URL as seen by python, which can happen in certain reverse-
# proxy hosting setups.  It will overwrite the WSGI environ dict with the
# details from public_url.  This could have security implications if e.g.
# you tell the app that it's on HTTPS but it's really on HTTP, so it should
# only be used as a last resort and after careful checking of server config.
force_wsgi_environ = false

[browserid]
# Uncomment and edit the following to use a local BrowserID verifier
# rather than posting assertions to the mozilla-hosted verifier.
# Audiences should be set to your public_url without a trailing slash.
#backend = tokenserver.verifiers.LocalVerifier
#audiences = https://localhost:5000

# By default, syncserver will accept identity assertions issues by
# any server. You can restrict this by setting the below to a list
# of allowed issuer domains.
#allowed_issuers = www.mysite.com myfriendsdomain.org

Het adres van uw server moet worden opgegeven via de parameter public_url:

public_url = http://fsync.example.com

Opmerking : de standaardwaarde van public_url, http://localhost:5000/werkt voor testdoeleinden op uw lokale computer.

We zullen de sqlurioptie verwijderen en de locatie plaatsen, of URI, waardoor de server verbinding kan maken met de database en de informatie kan opslaan:

sqluri = sqlite:////path/to/database/file.db

Als u een ander type DB wilt gebruiken:

sqluri = pymysql://username:[email protected]/sync

Voor de secretparameter moeten we een geheime sleutel genereren voor authenticatietokens:

head -c 20 /dev/urandom | sha1sum

Maak een opmerking bij de regel van de geheime parameter en kopieer en plak de geretourneerde string in de geheime parameter:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

Opmerking : als u niets in deze parameter plaatst, genereert de server er een, maar elke keer dat de server opnieuw wordt opgestart, zal deze anders zijn.

Verwijder het commentaar van de allow\_new\_usersparameter en stel deze truein zodat ons account voor de eerste keer verbinding kan maken met onze server:

allow_new_users = true

We zullen dan de audiencesparameter verwijderen en hetzelfde plaatsen als de public_uriparameter:

audiences = http://fsync.example.com

Voeg ten slotte de volgende regel toe aan het einde van uw bestand:

forwarded_allow_ips = *

Deze regel helpt u foutmeldingen en autorisatieproblemen te voorkomen.

Sync Server starten

Om de synchronisatieserver te starten, kunt u een van de volgende opdrachten gebruiken:

./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &

Hiermee kunt u de locatie van het configuratiebestand kiezen; evenals het argument --threads 4, dat het mogelijk maakt om meer macht toe te wijzen aan de synchronisatieserver.

Om de server te starten elke keer dat uw exemplaar opstart, kunt u de volgende regel aan uw crontab toevoegen door de crontab -eopdracht te typen :

@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &

Configuratie van webserver

U kunt verschillende webservers gebruiken die compatibel zijn met het WSGIprotocol. Bijvoorbeeld:

  • Nginx met uWSGI.
  • Apache gecombineerd met mod_wsgi.

Nginx

Voor Nginx moet u de ingebouwde proxy van Nginx gebruiken, zoals hieronder weergegeven:

server {
        listen  80;
        server_name fsync.example.com;

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                proxy_read_timeout 120;
                proxy_connect_timeout 10;
                proxy_pass http://127.0.0.1:5000/;
        }
}

Nginx + uWSGI

Nginx-gebruikers kunnen alleen de WSGI-socket gebruiken.

Installeer uWSGIvia Pip:

pip install uwsgi

Installeer uWSGIvia het downloaden van een bron tarball:

wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make

Opmerking : na de build heeft u een uwsgibinair bestand in de huidige directory.

Na installatie start u het met de volgende opties:

uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock

Gebruik dan de volgende Nginx-configuratie:

location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}

Apache

Installeer mod_wsgi:

apt-get install libapache2-mod-wsgi

Gebruik dan de volgende vhost:

<VirtualHost *:80>
  ServerName sync.example.com
  DocumentRoot /path/to/syncserver
  WSGIProcessGroup sync
  WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/path/to/syncserver/local/lib/python2.7/site-packages/
  WSGIPassAuthorization On
  WSGIScriptAlias / /path/to/syncserver/syncserver.wsgi
  CustomLog /var/log/apache2/sync.example.com-access.log combined
  ErrorLog  /var/log/apache2/sync.example.com-error.log
</VirtualHost>

Configureer de client (Firefox)

Nadat de server is geïnstalleerd en geconfigureerd, kunt u de Firefox-desktopclient configureren om met uw nieuwe synchronisatieserver te praten. Voordat u begint, moet u zich afmelden als u al verbonden bent met Firefox Sync Servers. Anders werkt de verbinding met de nieuwe server mogelijk niet.

Open eerst een nieuw tabblad en voer het volgende adres in:

about:config

Voer in de zoekbalk identity.sync.tokenserver.uride waarde in en wijzig deze in de URL van uw server met een pad van token/1.0/sync/1.5:

http://sync.example.com/token/1.0/sync/1.5


Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.