Welcome to my personal place for love, peace and happiness 🤖

Later Ctrl + ↑

Открытые данные о перелетах во всем мире

https://github.com/adsblol/globe_history

✈️🗄 Historical data for all aircrafts traces known to adsb.lol. Openly licensed.

https://github.com/adsblol/globe_history/

This is a database for the day of 2023-12-09 of all aircraft known to adsb.lol.
GitHub Release: v2023.12.09-planes-readsb-staging-0
GitHub Download Link: https://github.com/adsblol/globe_history/releases/tag/v2023.12.09-planes-readsb-staging-0
Uploaded on: 2023-12-10
Original Path: /var/globe_history/2023/12/09
Pod of origin: planes-readsb-staging-0

It was made by readsb (https://github.com/wiedehopf/readsb)


This database is made available under the Open Database License:
    http://opendatacommons.org/licenses/odbl/1.0/.
    Attached locally: LICENSE-ODbL.txt

This is made possible by the adsb.lol feeders.
If you want to help, please consider increasing coverage by adding a feeder:
    https://adsb.lol/feed

By feeding adsb.lol, you agree to the extent possible under law,
to waive all copyright and related or neighboring rights to your data, associating your work with the CC0 license.
    https://creativecommons.org/publicdomain/zero/1.0/
    Attached locally: LICENSE-CC0.txt

ps: может понадобиться декодер https://github.com/wiedehopf/readsb

Запускаем Garage S3 в Docker

Создаем проект, просто папку, где все будем хранить:

mkdir garage
cd garage

Создаем файл настроек томл:

nano  garage.toml

Пишем туда этот текст:

metadata_dir = "/var/lib/garage/meta"
data_dir = "/var/lib/garage/data"
db_engine = "lmdb"

replication_mode = "none"

rpc_bind_addr = "[::]:3901"
rpc_public_addr = "127.0.0.1:3901"
rpc_secret = "3e59650cc67421460a80eafc4d45611ebb63a214296d8f32f51135041ff514f5"

[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = "localhost"

[s3_web]
bind_addr = "[::]:3902"
root_domain = "localhost"
index = "index.html"

[k2v_api]
api_bind_addr = "[::]:3904"

[admin]
api_bind_addr = "0.0.0.0:3903"
admin_token = "472070e320469b2f048f77dcad4149e0c608ef01ecf0ac863c416287a1127a9e"

Далее создаем папку для хранения метаданных и самих данных:

mkdir meta
mkdir data

Теперь запускаем docker:

docker run \
  -d \
  --name garaged \
  --restart always \
  -p 3900:3900 -p 3901:3901 -p 3902:3902 -p 3903:3903 -p 3904:3904 \
  -v ./garage.toml:/etc/garage.toml \
  -v ./meta:/var/lib/garage/meta \
  -v ./data:/var/lib/garage/data \
  dxflrs/garage:v0.9.0

Проверяем, что все хорошо:

Для удобства зарегистрируем alias так:

alias garage="docker exec -ti garaged /garage"

Теперь можно запускать команды быстрее.

garage status
==== HEALTHY NODES ====
ID                Hostname      Address         Tags              Zone  Capacity  DataAvail
851017ec5989840f  e3428f26541f  127.0.0.1:3901  NO ROLE ASSIGNED

Добавим роль:

garage layout assign -z dc1 -c 1G 851017ec5989840f
Role changes are staged but not yet commited.
Use `garage layout show` to view staged role changes,
and `garage layout apply` to enact staged changes.

Применим роль:

garage layout apply --version 1 

==== COMPUTATION OF A NEW PARTITION ASSIGNATION ====

Partitions are replicated 1 times on at least 1 distinct zones.

Optimal partition size:                     3.9 MB
Usable capacity / total cluster capacity:   1000.0 MB / 1000.0 MB (100.0 %)
Effective capacity (replication factor 1):  1000.0 MB

dc1                 Tags  Partitions        Capacity   Usable capacity
  851017ec5989840f        256 (256 new)     1000.0 MB  1000.0 MB (100.0%)
  TOTAL                   256 (256 unique)  1000.0 MB  1000.0 MB (100.0%)


New cluster layout with updated role assignment has been applied in cluster.
Data will now be moved around between nodes accordingly.

Можно создавать бакет:

garage bucket create gavrilov 

Bucket gavrilov was created.

Генерируем ключи:

garage key create gavrilov-key

Key name: gavrilov-key
Key ID: GK6d2fd5f2bb22374c2b626fb2
Secret key: 5118548e77dcd660705662f18742e4d9f0cd5d37409c2e3bfa53a50f00e33886
Can create buckets: false

Key-specific bucket aliases:

Authorized buckets:

Добавляем доступ ключей в бакет:

garage bucket allow \                             
  --read \
  --write \
  --owner \
  gavrilov \
  --key gavrilov-key

New permissions for GK6d2fd5f2bb22374c2b626fb2 on gavrilov: read true, write true, owner true.

И последний штрих доступ через web:

garage bucket website gavrilov --allow

Website access allowed for gavrilov

Теперь можно настроить доступ s3 клиента и что то положить в бакет:

mc alias set garage http://localhost:3900 GK6d2fd5f2bb22374c2b626fb2 5118548e77dcd660705662f18742e4d9f0cd5d37409c2e3bfa53a50f00e33886

echo "hello world from s3" | mc pipe garage/gavrilov/index.html

Открываем браузер и смотрим файлик: http://gavrilov.localhost:3902/

ps: На официальном сайте docker запускают с аргументом

--network host

, но у меня почему-то так не работало. Порты закрыты были все. Потом разберусь ¯\_(ツ)_/¯ .

 No comments   2023   Open Source   s3

S3 Storage

  1. Garage – Французский опенсорс для домашнего использования и небольшой нагрузки. Но написан на Rust

garagehq.deuxfleurs Тут можно почитать, как утверждают разраотчики, то это можно напускать даже на тостере :), в прочем они скорее всего правы, учитывая язык разработки.

  1. SeaweedFS – А этот написан на Go. Вот, что они про себя пишут: быстрая распределенная система хранения больших двоичных объектов, файлов и озер данных для миллиардов файлов! Хранилище BLOB-объектов имеет поиск на диске O(1) и многоуровневое облако. Filer поддерживает Cloud Drive, активно-активную репликацию между DC, Kubernetes, монтирование POSIX FUSE, S3 API, S3 Gateway, Hadoop, WebDAV, шифрование, Erasure Coding. Есть хорошее сравнение с другими решениями тут: https://github.com/seaweedfs/seaweedfs#compared-to-other-file-systems. И есть статья на Медиуме

Seaweedfs – part1
Seaweedfs – part2
Seaweedfs – part3

  1. JuiceFS – Кажется китайский софт, написан на GO, есть комьюнити версия и платная для высоконагруженных решений. Подходит для big data.

Grist – это современная реляционные таблицы как Excel но бесплатные

https://github.com/gristlabs/grist-core

Grist — это современная реляционная таблица Excel. Она сочетает гибкость таблиц Excel с надежностью базы данных для организации ваших данных и повышения вашей продуктивности.
Этот репозиторий, grist-core, является сердцем Grist и содержит все необходимое для запуска мощного сервера таблиц как Excel. Если вы хотите просматривать и редактировать таблицы Excel, хранящиеся локально, вы можете использовать приложение grist-electron для Linux, Mac и Windows. А для отображения таблиц Grist на веб-сайте без какой-либо специальной поддержки можно использовать grist-static, полностью настраиваемую версию Grist, работающую в браузере.
Репозиторий grist-core является основой для всех этих вариантов, а также для хостинг-сервисов таблиц Excel, предлагаемых Grist Labs, компанией в Нью-Йорке (🇺🇸), которая является основным разработчиком Grist, и ANCT Données et Territoires, французским правительственным агентством 🇫🇷, чьи разработчики внесли значительный вклад в исходный код.
Репозитории grist-core, grist-electron и grist-static являются открытыми (Apache License, версия 2.0).

Попробовал. Норм. Простенько и со вкусом. Выглядит качественно.

Earlier Ctrl + ↓