Русский
Русский
English
Статистика
Реклама

Self-hosted

Ламповая self-hosted инфраструктура на Vultr

13.12.2020 06:19:29 | Автор: admin


О чём, зачем и почему?


Эту небольшую заметку я решил написать после собственного опыта разворачивания личной "инфраструктуры", состоящей из нескольких приложений для повседневных дел.


Здесь я расскажу, как развернуть сервисы для контроля финансов (FireFly3), заметок и чего покрупнее (BookStack) и контроля времени, уходящего на задачи в opensource проектах или на работе (Titra) всё это на Vultr с защитой с помощью firewall групп и доступа только с нужных ip, например, домашней статики или vpn (ещё развернём для этого Pritunl).


Vultr я выбрал, так как достаточно давно с ним работаю и уже знаю, что он может, а что нет в моём случае он подошёл идеально.


Надеюсь, что это окажется для кого-то полезным.


Разворачиваем сервисы


Для сервисов (всех трёх) я выбрал простой инстанс на Vultr + автоматические бэкапы, так как все они не особо требовательны к ресурсам.



Прим.: Предполагается, что у вас есть свой домен с DNS, где вы можете настроить субдомены для всего ниже описанного и получения сертификатов (certbot), исходя из этого, для удобства, в статье я буду писать про personal.io, а вы представляйте личный :)


Прим. 2: Ещё небольшое предупреждение я буду писать про сервисы в docker, однако, все они прекрасно разворачиваются и без контейнеров.


Финансы FireFly3


Demo


Собственно я люблю вести фин. учёт по всем своим доходам и расходам: видеть на что вы тратите ваши деньги и как возможно, что-то оптимизировать, по-моему достаточно важно.


Для моих целей вполне подходит FireFly3 в нём вы можете отслеживать все свои счета, регулярные транзакции, долги и т.д. и т.п.



На наше счастье разработчики firefly3 сделали удобную документацию с описанием развёртывания приложения, как с помощью docker, так и без оного. Приведу свой docker-compose файл c firefly и БД для него:


version: '3.3'services:  fireflyiii:    image: jc5x/firefly-iii:latest    volumes:      - firefly_iii_upload:/var/www/html/storage/upload    env_file:      - .env    restart: unless-stopped    ports:      - 127.0.0.1:34567:8080    depends_on:      - fireflyiiidb  fireflyiiidb:    image: yobasystems/alpine-mariadb:latest    restart: unless-stopped    env_file:      - .env.db    volumes:      - firefly_iii_db:/var/lib/mysqlvolumes:   firefly_iii_upload:     driver: local   firefly_iii_db:     driver: local

Так же, весьма важен env-файл для самого сервиса, так как в нём настраиваются все базовые моменты для развёртываемого инстанса, как то: тип используемой БД, с помощью чего отправлять вам письма счастья (SMTP или MAILGUN), логи, аутентификация (если, вдруг, вам вместо стандартного eloquent понадобится LDAP), ну и доменное имя на котором будет сервис, в нашем случае настроим его на finance.personal.io. Оставляю пример этого самого env-файла (с комментами от разработчиков) на pastebin с выставленными значениями под нашу статью.


С firefly3 на этом всё, после того как мы сделаем nginx proxypass и получим сертификат вам нужно зарегистрироваться в сервисе, после чего вы сможете отключить эту возможность.


Заметки, документация и т.д. BookStack


Demo


У меня часто возникает желание/необходимость, что-нибудь написать по работе или личное, поэтому для меня такой сервис, как BookStack показался крайне удобен возможность создавать отдельные полки, регулировать права, наглядный markdown редактор (приложу скриншот, как пишу это именно в нём), понятная иерархия: полки-книги-листы.



Такой сервис может подойти как для личного пользования, так и для командного в небольших компаниях.


docker-compose.yml:


version: "3.1"services:  bookstack:    image: linuxserver/bookstack    container_name: bookstack    volumes:      - bookstack-volume:/config    ports:      - 127.0.0.1:34568:80    env_file:       - .env.bookstack    restart: unless-stopped    depends_on:      - bookstack_db  bookstack_db:    image: linuxserver/mariadb    container_name: bookstack_db    volumes:      - bookstack-db:/config    env_file:       - .env.db    restart: unless-stoppedvolumes:  bookstack-volume:    driver: local  bookstack-db:    driver: local

Тут с предварительной конфигурацией всё намного проще, чем у firefly, так как почти всё можно настроить через web интерфейс.


.env.bookstack:


DB_HOST=bookstack_dbDB_USER=bookstackDB_PASS=bookstackpasswordDB_DATABASE=bookstackappAPP_URL=https://notes.personal.io

При первом входе, вам также понадобиться зарегистрировать admin юзера, но это позже.


В bookstack так же доступна аутентификация по LDAP, а так же по SAML или через социальные сети всё это настраиваемо. Так же есть экспорт опусов в pdf и html, публичный доступ к полкам или отдельным книгам, т.е. без пользователя.


Учёт потраченного времени Titra


Demo


У меня есть как личные, так и рабочие проекты, поэтому мне важно знать, сколько времени я потратил на ту или иную задачу. В Titra вы можете разграничить всё на разные проекты, проектные задачи, назначить стоимость вашей работы (например, за час), указать со скольки вы работаете и во сколько у вас перерыв (оплачиваемый или нет), ну и статистические отчёты за разное время тоже присутствуют с фильтрацией по отдельным проектам и т.д.



docker-compose.yml:


version: "3.1"services:  titra:    image: kromit/titra    container_name: titra    depends_on:      - mongodb    ports:      - "127.0.0.1:34569:3000"    env_file:      - .env.titra    restart: always  mongodb:    image: mongo:4.2    container_name: mongodb    restart: always    volumes:      - titra_db:/data/dbvolumes:  titra_db:    driver: local

.env.titra:


ROOT_URL=https://titra.personal.ioMONGO_URL=mongodb://mongodb/titra

Бонус: страница со ссылками на ваши сервисы Homer


Demo


Чтобы не потерять ссылки на все ваши сервисы особенно, если их станет больше, лучше всего иметь страницу, которая бы показывала, где и что у вас развёрнуто. Я когда задумался об этом, выбирал между heimdall и homer, остановился на последнем, так как его легче настроить и он вполне удовлетворяет условиям поставленной задачи.


На странице Homer вы сможете настроить ссылки на ваши сервисы, разнести их по разным группам, кастомизировать их отображение (например, присвоить каждому иконку).



docker-compose.yml:


version: "3.3"services:  homer:    image: b4bz/homer:latest    volumes:      - ./assets:/www/assets    ports:      - "127.0.0.1:34570:8080"    restart: unless-stopped

Для работы homer вам придётся создать assets директорию с файлом config.yml, где вы и укажите, что и как отображать.


Давайте первоначально напишем его таким образом:


title: "Infrastructure"subtitle: "Personal"documentTitle: "Personal/Infrastructure"icon: "fas fa-skull-crossbones"header: truecolumns: "3"theme: defaultcolors:  dark:    highlight-primary: "#3367d6"    highlight-secondary: "#4285f4"    highlight-hover: "#5a95f5"    background: "#131313"    card-background: "#2b2b2b"    text: "#eaeaea"    text-header: "#ffffff"    text-title: "#fafafa"    text-subtitle: "#f5f5f5"    card-shadow: rgba(0, 0, 0, 0.4)    link-hover: "#ffdd57"services:  - name: "Main"    icon: "fas fa-code-branch"    items:      - name: "Titra"        icon: "fas fa-clock"        subtitle: "time-tracking"        url: "https://titra.personal.io"      - name: "FireFly3"        icon: "fas fa-piggy-bank"        subtitle: "finance"        url: "https://finance.personal.io"      - name: "BookStack"        icon: "fas fa-book"        subtitle: "notes-articles-book"        url: "https://notes.personal.io"

Страница будет выглядеть так:



Разместим её на home.personal.io


Домены и сертификаты


После того, как мы всё написали и запустили нам нужно настроить nginx и попросить пару сертификатов у certbot. Я приведу пример общего для сервисов файла настройки, который можно и нужно разделить на несколько: apps.conf


Запустим nginx:


systemctl start nginx

Далее, предварительно создав необходимые A-записи в настройках DNS у вашего домена, чтобы поддомены home, notes, finance, titra ссылались на ip машины на Vultr, мы запросим с помощью certbot сертификаты Let's Encrypt, чтобы соединение было безопасным:


certbot run --nginx

После получения сертификатов, вы можете заходить на ваши сервисы и регистрироваться.


Защищаемся


Чтобы быть уверенным, что никто не зайдёт туда, куда не следует я сделал следующее:


  1. Развернул Prtinul сервер
  2. Создал firewall группу в панели управления Vultr

Собственно, как быстро (обещают за 60 секунд) pritunl на vultr уже написано.


Я расскажу лишь, как можно быстро настроить firewall правила для vultr машины (или нескольких)


  1. Заходим на страницу ваших огненных стен


  1. Жмём плюсик и в выпавшем меню "Add firewall group".


  2. Добавляем правила, например, я решил, что лучше всего оставить открытым 22 порт, а остальные сделать доступными только из-под VPN. Например, так:




  1. Ждём, так как правила накатятся не мгновенно, а примерно за две минуты.


  2. Наслаждаемся своей непохожестью безопасностью и контролем за важными для вас данными.


Подробнее..

Бесплатные сервисы для разработчиков огромный список

06.04.2021 12:11:10 | Автор: admin

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. Бесконечное время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье Боль разработчика: Никогда не давайте пользователям бесплатный тариф. Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.

Например, огромный список бесплатных сервисов для разработчиков ведётся в репозитории free-for-dev. Список составлен пул-реквестами более 900 участников.

Важно подчеркнуть, что конкретно в этом списке отсутствуют альтернативы на своём хостинге (о них см. ниже). Здесь исключительно онлайновые сервисы, то есть SaaS, PaaS, IaaS.

Приведены только сервисы с честным бесплатным тарифом, которым можно пользоваться без ограничения по времени, без перехода на платную подписку. Обычно такой честный тариф ограничен только по объёму услуг.

Для примера вот несколько тематических категорий.

Основные облачные провайдеры


Ниже указано, в каком объёме предоставляются бесплатные услуги.

Google Cloud Platform

  • App Engine 28 часов фронтенд-инстансов в день, 9 часов бэкенд-инстансов в день
  • Cloud Firestore 1ГБ места, 50000 чтений, 20000 записей, 20000 удалений в день
  • Compute Engine 1 невытесняемый инстанс f1-micro, 30ГБHDD, 5ГБ для снапшотов (не для всех регионов), сеть 1ГБ из Северной Америки во все регионы (кроме Китая и Аргентины) в месяц
  • Cloud Storage 5ГБ, трафик 1ГБ
  • Cloud Shell веб-терминал Linux и базовая IDE с хранилищем на 5ГБ. Лимит 60 часов в неделю
  • Cloud Pub/Sub 10ГБ сообщений в месяц
  • Cloud Functions 2 млн вызовов в месяц (включая все фоновые и HTTP-вызовы)
  • Cloud Run 2 млн запросов в месяц, 360000гигабайт-секунд памяти, 180000 vCPU-секунд вычислительного времени, трафик 1ГБ в месяц из Северной Америки в другие регионы
  • Google Kubernetes Engine отсутствие платы за управление для одного зонального кластера. Но при этом все узлы оплачиваются по стандартной цене Compute Engine
  • BigQuery 1ТБ запросов в месяц, 10ГБ хранилище на месяц
  • Cloud Build 120 минут сборки в день
  • Cloud Source Repositories до 5 пользователей, хранилище 50ГБ, трафик 50ГБ
  • Полный список бесплатных тарифов Google Cloud

Amazon Web Services

  • Amazon DynamoDB СУБД NoSQL на 25ГБ
  • Amazon Lambda 1млн запросов в месяц
  • Amazon SNS 1млн нотификаций в месяц
  • Amazon Cloudwatch 10 пользовательских метрик и 10 предупреждений
  • Amazon Glacier 10ГБ долговременного хранилища объектов
  • Amazon SQS 1 млн запросов из очереди сообщений
  • Amazon CodeBuild 100 минут сборки в месяц
  • Amazon Code Commit 5 активных пользователей в месяц
  • Amazon Code Pipeline 1 активный конвейер в месяц
  • Полный список бесплатных тарифов AWS

Microsoft Azure

  • Virtual Machines 1 виртуальная машина B1S под Linux, одна B1S под Windows
  • App Service 10 приложений (веб, мобильные или API)
  • Functions 1 млн запросов в месяц
  • DevTest Labs среда разработки и тестирования
  • Active Directory 500000 объектов
  • Active Directory B2C хранилище на 50000 пользователей в месяц
  • Azure DevOps 5 активных пользователей, неограниченные приватные репозитории Git
  • Azure Pipelines 10 бесплатных параллельных задач с неограниченным временем выполнения для опенсорсных проектов под Linux, macOS и Windows
  • Microsoft IoT Hub 8000 сообщений в день
  • Load Balancer 1 бесплатный публичный IP (VIP) с балансировкой нагрузки
  • Notification Hubs 1млн пуш-нотификаций
  • Bandwidth внешний трафик 5ГБ в месяц
  • Cosmos DB 5ГБ хранилище и обеспеченная пропускная способность на 400 RU (реквест-юнитов)
  • Static Web Apps сборка, деплой и хостинг статичных приложений и бессерверных функций, с бесплатным SSL, аутентификацией/авторизацией и пользовательскими доменами
  • Storage хранилище для файлов и блобов на 5ГБ в LRS (locally redundant storage)
  • Cognitive Services AI/ML API (компьютерное зрение, перевод, распознавание лиц, боты...) с бесплатным лимитом использования
  • Cognitive Search сервис индексации текстов и поиск на основе ИИ, бесплатно на 10000 документов
  • Azure Kubernetes Service бесплатное управление кластером Kubernetes (хотя при этом оплачиваются сами виртуальные машины, хранение данных и другие сервисы за пределами бесплатных лимитов)
  • Event Grid 100тыс. операций в месяц
  • Полный список бесплатных тарифов Azure

Oracle Cloud

  • Compute два инстанса VM.Standard.E2.1.Micro 1ГБ RAM
  • Block Volume 2 тома, в сумме 100ГБ (используется для вычислений)
  • Object Storage 10 ГБ
  • Load Balancer 1 инстанс на 10 Мбит/с
  • Databases 2 базы данных, по 20 ГБ каждая
  • Monitoring приём до 500млн точек данных, выдача до 1млрд точек данных
  • Bandwidth внешний трафик 10ТБ в месяц с ограничением скорости 5Мбит/с
  • Notifications 1 млн нотификаций в месяц, 1000 отправленных писем
  • Полный список бесплатных тарифов Oracle Cloud

IBM Cloud

  • Cloud Functions 5 млн выполнений в месяц
  • Object Storage 25ГБ в месяц
  • Cloudant Database хранилище на 1 ГБ
  • Db2 Database хранилище на 100МБ
  • API Connect 50000 вызовов API в месяц
  • Availability Monitoring 3 млн точек данных в месяц
  • Log Analysis анализ логов до 500МБ в сутки
  • Полный список бесплатных тарифов IBM Cloud

Аналитика, статистика, логи


Вот несколько сервисов бесплатной аналитики для мобильных приложений и сайтов. Здесь только бесплатные сторонние сервисы. Многие из них можно использовать вместо скриптов Google Analytics, поскольку GA рассматривается как угроза приватности.

Примечание. Программы self-hosted см. в отдельной категории.

  • AO Analytics бесплатная аналитика для любых сайтов, без ограничений по объёму
  • Indicative платформа аналитики до 50млн событий в месяц
  • Amplitude 1 млн событий в месяц, до 2 приложений
  • GoatCounter опенсорсная платформа веб-аналитики бесплатно для некоммерческого использования или self-hosted версия бесплатно для всех. Позиционируется как более приватная альтернатива коммерческим сервисам Google Analytics и Matomo. Бесплатный лимит 6 месяцев хранения данных и 100тыс. просмотров в месяц.
  • Google Analytics, без комментариев
  • Expensify учёт расходов, контроль личных финансов
  • GetInsights система аналитики без куков, бесплатно до 5000 событий в месяц.
  • Heap автоматический трекинг действий пользователя в iOS или веб-приложениях. Бесплатно до 5000 визитов в месяц
  • Keen разнообразные инструменты для сбора данных, анализа и визуализации. Бесплатно до 50000 событий в месяц
  • Яндекс.Метрика российская альтернатива GA, но не лишённая недостатков последнего (в том числе угроза приватности со стороны материнской корпорации)
  • Mixpanel лимит 100000 пользователей в месяц, неограниченный срок хранения данных


    Mixpanel
  • Moesif аналитика API для REST и GraphQL, бесплатно до 500000 вызовов API в месяц
  • Molasses Флаги функций и A/B-тестирование, бесплатно до 3 окружений по 5 флагов функций в каждом.
  • Optimizely A/B-тестирование, бесплатный стартовый план на 1 сайт, 1 приложение iOS и 1 приложение Android
  • Quantcast новый сервис бесплатной аналитики, запущен в марте 2021 года, лимиты бесплатного тарифа официально не объявлены
  • Sematext бесплатно до 50тыс. действий в месяц, хранение данных 1 день
  • Tableau Developer Program бесплатная версия для разработчиков (предрелизная тестовая версия аналитической платформы)
  • UsabilityHub тестирование юзабилити и эффективности разных вариантов веб-дизайна. Бесплатные тесты до 2 минут
  • Woopra бесплатная платформа аналитики для любых продуктов, до 500тыс. действий в месяц, хранение данных до 90 дней

Другие категории



Эмулятор основных операционных систем в браузере copy.sh

Облачные сервисы и аналитика лишь малая капелька в море бесплатных услуг для разработчиков. Вот ещё 45 категорий. В каждой от нескольких штук до несколько десятков сервисов с бесплатными тарифами.


Опенсорсные инструменты безопасности


Компания Penetrum Security, которая специализируется на информационной безопасности, составила собственный список опенсорсных инструментов для разработчиков, с упором на безопасность.

Например, в нём есть системы для управления уязвимостями Faraday, Archery Sec, Jackhammer,
Watchdog и OpenVAS, сканер контейнеров trivy, менеджеры конфигурация вроде MGMT, Chef и Puppet, бесплатные системы SIEM (анализ событий в реальном времени и реагирование), VPN, инструменты для улучшения безопасности систем на Linux и Windows (Bastille, JShielder, nixarmor, Zeus (AWS), Docker-bench и др.), защита аутентификации в Linux, чёрные списки IP и доменов, прокси, socks-серверы, HTTP-туннели, FTP-прокси, DNS-прокси, инструменты сетевого и серверного мониторинга, системы для определения вторжений в сеть и на хост (NIDS и HIDS, соответственно), мониторинг и анализ логов, антивирусы, спам-фильтры, симуляторы инфраструктуры, файрволы для веб-приложений, сетевые сканеры, системы форензики (поиск цифровых улик), программы анализа файлов, метаданных, оперативной памяти и многие другие инструменты.

Всё бесплатно и с открытыми исходниками.

Бесплатные альтернативы на своём хостинге


Вышеупомянутый список free-for-dev не включает бесплатные инструменты на своём хостинге. Однако их очень много. Обычно это опенсорсные программы. Бывает, что какой-то коммерческий сервис SaaS одновременно публикует исходники, то есть предлагает параллельно платный и бесплатный тариф.

Вот список бесплатных альтернатив на своём хостинге в 81 категории из коллекции awesome-selfhosted:



Списки бесплатных ресурсов для разработчиков также ведутся в проектах FOSS-for-Dev, getAwesomeness и De-google-ify Internet.

Надеемся, что эта подборка окажется кому-то полезной.



Наша компания предлагает облачные серверы для любых задач и на любой операционной системе. Создавайте собственные конфигурации в течение минуты, минимальный тариф всего 6.5 рублей в день!
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru