stoqs ist eine Geodatendatenbank und Webanwendung, die Ozeanographen einen effizienten integrierten Zugriff auf In-situ- Messungen und Ex-situ- Probendaten ermöglichen soll. Siehe http://www.stoqs.org.
Installieren Sie zunächst Vagrant und VirtualBox – es gibt Standardinstallationsprogramme für Mac, Windows und Linux. (Sie benötigen außerdem X Windows-Systemsoftware auf Ihrem Computer.) Erstellen Sie dann einen leeren Ordner in Ihrem Home-Verzeichnis, z. B. Vagrants/ stoqs vm
, öffnen Sie ein Eingabeaufforderungsfenster, wechseln Sie zu diesem Ordner und geben Sie die folgenden Befehle ein:
curl " https://raw.githubusercontent.com/stoqs/ stoqs /master/Vagrantfile " -o Vagrantfile
curl " https://raw.githubusercontent.com/stoqs/ stoqs /master/provision.sh " -o provision.sh
vagrant plugin install vagrant-vbguest
vagrant up --provider virtualbox
Die Vagrantfile und Provision.sh stellen ein Entwicklungssystem mit einem NFS-gemounteten Verzeichnis von Ihrem Host-Betriebssystem bereit. Wenn Ihr Host die Bereitstellung von Dateien über NFS nicht unterstützt (die meisten Windows-Hosts unterstützen die Bereitstellung von NFS-Dateien nicht), müssen Sie diese Dateien bearbeiten, bevor Sie vagrant up
ausführen. Suchen Sie in diesen Dateien nach den support NFS file serving
für die Zeilen, die Sie ändern müssen.
Der Befehl vagrant up
benötigt etwa eine Stunde, um eine vollständige virtuelle CentOS 7- stoqs -Maschine bereitzustellen und einzurichten, die auch MB-System, InstantReality und alle Python-Data-Science-Tools enthält, die in Paketen wie Anaconda gebündelt sind. Sie werden aufgefordert, Ihr Administratorkennwort einzugeben, um einen freigegebenen Ordner von der VM aus zu konfigurieren (es sei denn, Sie haben die NFS-Bereitstellung deaktiviert). Alle Verbindungen zu dieser VM werden über das Verzeichnis ausgeführt, in dem Sie sie installiert haben. Sie müssen darauf zugreifen (z. B. cd ~/Vagrants/ stoqs vm
), bevor Sie sich mit dem Befehl vagrant ssh -- -X
anmelden. Melden Sie sich nach Abschluss der Installation bei Ihrer neuen VM an und testen Sie sie:
vagrant ssh -- -X # Wait for [vagrant@localhost ~]$ prompt
export stoqs _HOME=/vagrant/dev/ stoqs git # Use stoqs _HOME=/home/vagrant/dev/ stoqs git if not using NFS mount
cd $ stoqs _HOME && source venv- stoqs /bin/activate
export DATABASE_URL=postgis:// stoqs adm:[email protected]:5438/ stoqs
./test.sh CHANGEME load noextraload
Starten Sie in einem anderen Terminalfenster den Entwicklungsserver (nach einem cd ~/Vagrants/ stoqs vm
):
vagrant ssh -- -X # Wait for [vagrant@localhost ~]$ prompt
export stoqs _HOME=/vagrant/dev/ stoqs git # Use stoqs _HOME=/home/vagrant/dev/ stoqs git if not using NFS mount
cd $ stoqs _HOME && source venv- stoqs /bin/activate
export DATABASE_URL=postgis:// stoqs adm:[email protected]:5438/ stoqs
stoqs /manage.py runserver 0.0.0.0:8000 --settings=config.settings.local
Besuchen Sie stoqs Benutzeroberfläche Ihres Servers mit dem Browser Ihres Host-Computers:
http://localhost:8008
Weitere Anweisungen finden Sie im Verzeichnis doc/instructions – Einzelheiten zum Laden Ihrer eigenen Daten finden Sie unter LOADING. Sie können beispielsweise Ihre eigene Datenbank einer archivierten MBARI-Kampagne erstellen:
cd stoqs
ln -s mbari_campaigns.py campaigns.py
loaders/load.py --db stoqs _cce2015
Sie sind herzlich eingeladen, zum stoqs -Projekt beizutragen! Informationen zum Teilen Ihrer Arbeit finden Sie unter BEITRAGEN. Sehen Sie sich außerdem Beispiel-Jupyter-Notebooks an, die spezifische Analysen und Visualisierungen demonstrieren, die über die Möglichkeiten der stoqs Benutzeroberfläche hinausgehen. Besuchen Sie die stoqs Wiki-Seiten für Updates und Links zu Präsentationen. Die stoqs -discuss-Liste in Google Groups ist auch ein guter Ort, um Fragen zu stellen und mit den stoqs Benutzer- und Entwickler-Communitys zu diskutieren.
Mit Unterstützung der David and Lucile Packard Foundation wird stoqs kontinuierlich weiterentwickelt, um die Mission des Monterey Bay Aquarium Research Institute zu unterstützen. Wenn Sie über einen eigenen Server verfügen, möchten Sie gelegentlich neue Funktionen erhalten mit:
git pull
Installieren Sie zunächst Docker und Docker-Compose auf Ihrem System. Klonen Sie dann das Repository. Kopieren Sie im Docker-Verzeichnis die Datei template.env
nach .env
, bearbeiten Sie sie für Ihre spezifische Installation und führen Sie dann docker-compose up
aus:
git clone https://github.com/stoqs/ stoqs .git stoqs git
cd stoqs git/docker
cp template.env .env
chmod 600 .env # You must then edit .env and change settings for your environment
docker-compose up
Wenn das Verzeichnis, das auf die Variable stoqs _VOLS_DIR in Ihrer .env-Datei festgelegt ist, nicht vorhanden ist, erstellt die Ausführung von docker-compose up
den Postgresql-Datenbankcluster, lädt eine Standard- stoqs -Datenbank und führt die Einheiten- und Funktionstests der stoqs -Anwendung aus . Wenn diese Tests nicht ausgeführt werden (sie dauern mehrere Minuten), prüfen Sie, ob Fehlermeldungen angezeigt werden.
Sobald Sie sehen ... [emperor] vassal /etc/uwsgi/django-uwsgi.ini is ready to accept requests
können Sie die Website unter https://localhost besuchen – sie verwendet ein selbstsigniertes Zertifikat, sodass Ihr Browser sich beschweren wird und Sie müssen eine Ausnahme hinzufügen. (Der Nginx-Dienst stellt dieselbe App auch unter http://localhost:8000 bereit, ohne dass das Zertifikatsproblem auftritt.)
Die Standardeinstellungen in template.env
führen einen Produktions-nginx/uwsgi/ stoqs Server aus, der für https://localhost in einer virtuellen Vagrant-Maschine konfiguriert ist. Um einen Server für das Intranet oder die öffentliche Bereitstellung Ihrer Daten zu konfigurieren, befolgen Sie die Anweisungen in den Kommentaren zu den Einstellungen in Ihrer .env
Datei. Nachdem Sie Ihre .env
Datei bearbeitet haben, müssen Sie die Images neu erstellen und die Docker-Dienste neu starten, dieses Mal mit der Option -d
, um die Container im Hintergrund auszuführen:
docker-compose build
docker-compose up -d
Die oben genannten Befehle sollten auch nach einem git pull
ausgeführt werden, um aktualisierte Software auf Ihrem Server bereitzustellen.
Eine gute Sache ist, Protokolle zu überwachen und auf Fehlermeldungen zu prüfen. Dies kann wie folgt erfolgen:
docker-compose logs -f
Sie können Python-Code auf dem stoqs Server von Ihrem Host aus ausführen, indem Sie ihm docker-compose exec stoqs
voranstellen (verwenden Sie docker-compose run stoqs
um einen anderen Container für lang laufende Prozesse zu starten), um beispielsweise einige vorhandene MBARI-Kampagnendaten zu laden:
docker-compose run stoqs stoqs /loaders/load.py --db stoqs _simz_aug2013
(Um MBARI-Kampagnen zu laden, müssen Sie die Zeile CAMPAIGNS_MODULE= stoqs /mbari_campaigns.py
in Ihrer .env-Datei auskommentiert haben. Stellen Sie sicher, dass Sie im stoqs -Verzeichnis keinen symbolischen Link mit dem Namen campaigns.py
haben. Dies ist nur für erforderlich eine Vagrant-Entwicklungsmaschine – es ist am besten, das für eine Docker-Bereitstellung verwendete Verzeichnis von dem für Vagrant verwendeten Verzeichnis zu trennen.)
Überwachen Sie in einem anderen Fenster die Ausgabe:
docker-compose run stoqs tail -f /srv/ stoqs /loaders/MolecularEcology/loadSIMZ_aug2013.out
# Or (The stoqs code is bound as a volume in the container from the GitHub cloned location)
tail -f stoqs git/ stoqs /loaders/MolecularEcology/loadSIMZ_aug2013.out
Sie können pg_restore
auch verwenden, um eine vorhandene Campaign-Datenbank schneller auf Ihr System zu laden. Für Anweisungen klicken Sie auf den Kampagnennamen in der oberen Leiste einer Kampagne auf einem anderen stoqs -Server, zum Beispiel auf dem öffentlichen stoqs Server von MBARI.
Wenn Sie stoqs für Ihre Forschung verwenden, zitieren Sie bitte diese Publikation:
McCann, M.; Schramm, R.; Cline, D.; Michisaki, R.; Harvey, J.; Ryan, J., „Verwenden von stoqs (dem räumlichen, zeitlichen, ozeanografischen Abfragesystem) zum Verwalten, Visualisieren und Verstehen von AUV-, Segelflugzeug- und Liegeplatzdaten“, in Autonomous Underwater Vehicles (AUV), 2014 IEEE/OES , S. 1-10 , 6.-9. Okt. 2014 doi: 10.1109/AUV.2014.7054414
stoqs-Logo" style="max-width: 100%;">