Latest Posts

Скрипт системы приема криптодепозитов

Скрипт системы приема криптодепозитов

Подготовлена и внедрена система учета и приема депозитов для криптовалют.

В основу скрипта выделены следующие модули:

  1. Пополнение баланса пользователя. Доступен прием Ethereum и Bitcoin, для каждого пользователя выдается случайный адрес из пула всех адресов. Уведомление администратору.
  2. Раздел мои депозиты. После пополнения баланса возможно создать новый депозит на определенный или безлимитный срок. Начисление процентов на депозит происходит в заданное в системе время еженедельно.
  3. Администрирование. Для учета пополнений и депозитов, вывода статистики по системе, пользователям и конфигурационные данные.

Внедрение системы простое и не потребует дополнительных знаний при использовании серверов Sassoft. Доступна аренда решения.

Read more

Вывод релизов с Github API при помощи SH скрипта

Вывод релизов с Github API при помощи SH скрипта

Пришлось на днях работать над выводом списка релизов с Github. Для остроты ощущений был написан простой sh скрипт, который выводит в stdout список всех релизов указанного репозитория на гитхабе. Для манипуляции с JSON ответом была выбрана библиотека jq.

#!/usr/bin/env sh

# Get releases
DRAFTS=""
i=1
while [ $i   -le ${PAGES} ]; do
    p=$(curl --silent --get "https://${ACCESS_TOKEN}@api.github.com/repos/${REPOSITORY}/releases?per_page=100" | jq -r '.[] | select(.draft==false) | [ .tag_name, .id|tostring ] | join(";")')
    DRAFTS="$DRAFTS$p"
    i=$(( i + 1 ))
done
DRAFT_COUNT=$(echo "${DRAFTS}" | wc -l)
DRAFT_COUNT=$((DRAFT_COUNT + 0))
echo "Found ${DRAFT_COUNT} releases"

Для работы необходимо предоставить ACCESS_TOKEN для с github и REPOSITORY вида team_name/repo_name

Read more

Просмотр docker logs

Просмотр docker logs

Для просмотра логов из контейнера используется удобная и понятная команда docker logs.

Что еще удобного есть в команде docker logs?

  1. —follow  — просматривать логи в режиме реального времени (-f)
  2. —details — выводить дополнительную информацию в логах
  3. —tail n — выводить последние n логов. Удобно если контейнер пишет очень много логов, а нам интересна лишь ее последняя часть.
  4. —since и —until — показывать логи в определенном интервале, заданным timestamp (2018-11-014T21:23:37) или вида 1m, 30m и так далее.
  5. —timestamps или -t  — показывать время логов.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read more

Генератор интерфейсов на Go — ifacemaker

Генератор интерфейсов на Go — ifacemaker

Нашел очень удобную библиотеку для генерации интерфейсов на Go — ifacemaker.

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

ifacemaker -f request.go -s Request -i RequestInterface -p humantest -c "Don't edit: Autogenerated"

После запуска скрипт сгенерирует нам готовый интерфейс RequestInterface на базе класса Request в пакете request.go

Read more

Скрипт объявлений

Скрипт объявлений

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

Для развертывания решения теперь не требуется своего сервера или специальных знаний по настройке скрипта — развернуть сервис на своем домене можно на облачной платформе Sassoft абсолютно бесплатно в течение первого месяца. От вас лишь требуется свой домен и подходящий шаблон для проекта. Также поддерживается решение на вашем сервере с полной автоматизацией по развертыванию сервиса.

Read more

Мониторинг Docker контейнеров в DataDog

Мониторинг Docker контейнеров в DataDog

Datadog — удобный инструмент для сбора логов, метрик и прочих телеметрических данных для любого проекта. Даже бесплатный план позволяет использовать множество инструментов сервиса, один из них это сбор метрик с ваших докер контейнеров.

Для этого необходимо добавить datadog agent в виде контейнера:

docker run -d --name dd-agent \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY=YOUR_KEY \
datadog/agent:latest

После этого можно установить готовый Docker Overview dashboard, который уже имеется внутри Datadog и собирать метрики.

Read more

Работа с S3 в Yii2

Работа с S3 в Yii2

На сегодняшний момент любое Stateless приложение невозможно представить без использования object storage хранилища на подобии AWS S3. Также многие облачные провайдеры (DigitalOcean) стали предоставлять S3-совместимые хранилища по привлекательным ценам.

Как подключить работу с S3 в Yii2?

Для этого для начала воспользуемся библиотекой aws/aws-sdk-php:

composer require aws/aws-sdk-php

Далее для работы нам необходимо сгенерировать ключи доступа на стороне провайдера и записать их как переменные AWS_SECRET_ACCESS_KEY и AWS_ACCESS_KEY_ID. SDK будет брать эти ключи из наших переменных окружения ($_ENV).

Read more

Использование Sendgrid в Yii2

Использование Sendgrid в Yii2

Sendgrid — очень удобный сервис по отправке транзакционных писем с обширной аналитикой и отчетами по доставленным письмам. Сервис также очень удобен для обхода спам фильтров ваших писем, используя Sendgrid вы можете быть уверены что письмо будет доставлено и прочитано адресатом.

Хотя API очень прост и удобен, мы все же воспользуемся готовым расширением wadeshuler/yii2-sendgrid

Read more

Множество процессов в bash скрипте

Множество процессов в bash скрипте

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

#!/usr/bin/env bash

# Do smth
for job in 1 2 3; do
  echo "Starting job #${job}"
  echo "Job done" > $job.log 2>&1 &
done

echo "Waiting for job results..."

FAIL=0
for job in $(jobs -p)
do
  wait "$job" || (( FAIL++ ))
  echo "Job PID #${job}  finished with code: $?"
done

for job in 1 2 3; do
  echo -e "\\n ======== Results for job #${job} ========"
  cat $job.log
done

if [ "$FAIL" != "0" ];
then
  exit 1
fi

 

Read more

Скрипт мониторинга криптовалютных бирж

Скрипт мониторинга криптовалютных бирж

Разработана и внедрена система мониторинга различных криптовалютных пар на следующих биржах:

  • Poloniex
  • Bitfinex
  • Binance
  • Wex
  • Kucoin
  • Okex
  • Bithumb
  • Bittrex
  • Bitstamp
  • Kraken
  • Gemini
  • Huobi

Что входит в поставку?
В поставку входит обработчик-демон, который опрашивает настроенные биржи и торговые пары каждую минуту и обновляет внутреннее хранилище курсов.

Уведомление происходит при наступлении определенного сигнала: максимум — минимум цены за определенный промежуток времени. Для этого отдельный скрипт делает запрос на callback url вашего обработчика с данными по сигналу, чтобы ваш скрипт мог обработать данный сигнал.

Read more