Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
31
askorobogatov
askorobogatov
3 года назад
ДЕВОПСИНА

Страх и ненависть в Кубер-Нетесе⁠⁠

Страх и ненависть в Кубер-Нетесе
[моё] Страх и ненависть в Лас-Вегасе IT юмор DevOps IT Программирование Docker
9
38
YouZ63
3 года назад

Как я решил сделать Telegram Bot для знакомств⁠⁠

Началось все года два назад, во Вконтакте я напоролся на один бот для знакомств (не буду говорить какой) и подумал, что почему бы не сделать такой же но в Телеграм, благо на тот момент мне хотелось попрактиковаться в написании ботов для телеги ну и на тот момент мне понравилась идея для бота в стиле "Знакомства"


В качестве языка программирования я выбрал Python, и сходу начал "творить"

в ходе разработки за пару месяцев я понял, что не все так просто как казалось:


1 - Bot pulling работал так себе, стабильности было маловато
2 - Библиотека telebot которую я использовал оказалась не так проста как кажется на первый взгляд
3 -  Я  был удивлен когда понял ,  что кода там будет больше чем в привычных мне скриптах на 200 строк, пришлось изучать много информации для разработчиков
4 - Инфраструктура,  поднятие бота локально на ПК это хорошо, но лучше было бы что бы появился какой-то сервер

Решением проблем было такое:


Переделал бот на web hooks, теперь не мой бот опрашивал Telegram на наличие изменений

а Telegram отправлял сообщения про изменения в мой бот, но для этого пришлось научить мой код принимать то что посылает мне Телеграм, в этом мне помог flask, та же пришлось купить доменное имя (купил подешевле на Go Daddy, там за копейки можно взять доменное имя на год, ну а потом цена будет выше, ибо скидки не на всегда) + Нужен SSL, по этому "перед" ботом появился nginx в роли reverse proxy, и Lets Encrypt сертификат, дешево и сердито. Это все я начал деплоить по всем канонам Continuous Delivery на купленный мной за 5$ самый дешевый сервер (дроплет) на DigitalOcean (кстати там можно на первые 3 мес получить этот дроплет бесплатно, но это не точно) ну а в качестве хранилища кода был выбран GitHub, после того как его выкупили Майки в нем можно бесплатно создавать закрытые репы)


Но это еще не все, ибо во время работы бота нужно хранить информацию, временную и постоянную, для этого пришлось подключить БД, в качестве бд в которой хранится временная информация, был выбран redis, ну а для хранения постоянных данных моя любимая mongodb , в целом их можно было развернуть прям на сервере, но я решил сделать все красиво и купил DigitalOcean Managed базу, то есть они сами ей "управляют" а я только конфигурирую ее кнопочками 😁 но штука не дешевая, 12$ в мес за одну базу.


Но так как я это все делал один, это заняло много времени, так же в Телеграм уже появились боты такого характера и это все привело к потери у моего бота уникальности + баги + пока делал появились библиотеки для работы с API Telegram поддерживающие асинхронность.


По этому хотелось бы дать совет тем кто тоже хочет разработать какой-то свой продукт😁

что бы не напарываться на такие косяки как я, перед разработкой нужно:


1 - Разработать документацию, да, это долго, возможно олдскульно, но это важно!

в ней обязательно должна быть схема работы, и все будущие функциональные возможности продукта (Да, опытные скажут что даже если и так , рано или поздно захочется добавить то чего изначально не было описано,  но это будет намного проще чем без нормальных доков, так как вы будете понимать что и зачем идет, почему этот Сlass наследуется от этого Class - а, это позволит модифицировать код не парясь о том что щас все навернется)


2 - Детально изучить актуальные технологии,  если вышла 3 версия python, не нужно кодить на 2 ой =)


3 - Желательно автоматизировать обновление версий продукта, так вы потратив может день, с экономите пару месяцев на ручном обновлении и возможных фиксах во время этого в будущем


(в этом поможет terraform для управления инфраструктурой, ansible как система управления конфигурацией, ну и попробуйте контейнерезацию в виде docker - это позволит более удобно управлять версиями)


Многие скажут, да зачем все это? этим же никто не будет пользоваться ?

а если будет?) представьте что у вас привалило 10 к пользователей, а у вас один сервер на 2 ядра в полку еле работает, а код обновляется посредством scp 😁


а так даже если этим и никто не будет пользоваться вы изучите много технологий, и кто знает, может они вам пригодятся в будущих проектах 😁


Собственно вот и бот:

https://t.me/Meets_For_Bot


Функциональных возможностей немного, но хоть что-то но есть:

1 - Лайки/Дизлайки, естественно если лайкнуть кого-то ему придет сообщение что вы его

лайкнули и он сможет посмотреть ваш профиль


2 - Мультиязычность, язык интерфейса бота подстраивается под язык Telegram клиента


3 - Можно отправлять друг другу анонимные сообщения внутри бота, их видите только вы и получатель


4 - Можно получить рандомный профиль ну или просто по очереди перебирать профили


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

Как я решил сделать Telegram Bot для знакомств Telegram, Знакомства, Docker, Python, Redis, Mongodb, Длиннопост, Бот
Как я решил сделать Telegram Bot для знакомств Telegram, Знакомства, Docker, Python, Redis, Mongodb, Длиннопост, Бот
Показать полностью 2
[моё] Telegram Знакомства Docker Python Redis Mongodb Длиннопост Бот
12
4
sha9
4 года назад
Лига программистов

Docker : Установка LAMP + wordpress, joomla, opencart и magento 2⁠⁠

[моё] IT Docker Cms Joomla Wordpress Opencart Magento Гайд Видео
6
21
HUNY
HUNY
4 года назад

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle)⁠⁠

В этом посте будет описана простая установка WordPress на Ubuntu.

Операционная система на базе ядра Linux может быть и любая другая, например Debian.

А в качестве сервера может выступать любая «домашняя железяка», например неттоп или старый ноутбук/ПК. Wordpress по этой статье можно установить и на UBUNTU на  бесплатном VPS сервере от Oracle (мой пост на Пикабу по регистрации Always Free VPS  от Oracle  был здесь).


И если вдруг «страшные рассказы» о том, как Oracle нарушает условия Always Free и всех «банит» через 30 дней использования сервиса, написанные в комментариях под тем постом, коснуться и меня, то запилю пост об этом. Пока у меня всё работает, как часы )))

Включая мой блог на этой VPS.

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Предпосылкой написания этой статьи стало то, что некоторое время назад я начал серию публикация на Pikabu посвящённую тематике умного дома. Со временем некоторые статьи стали содержать код (команды Linux, YML-файлы…), который в публикациях не имеет нужной разметки и особенно важной в yaml-файлах — табуляции. Поэтому решил себе завести блог для таких публикаций - HUNY Blog. Ну, а в этой статье поделюсь, как это можно сделать легко и непринуждённо на своём примере. )))


Почему я просто не завёл блог на WordPress.com, а решил установить WordPress на Ubuntu на своём бесплатном сервере:

- нельзя использовать свои темы (шаблоны) для сайтов без тарифа Bussines (1 499 рублей в месяц);

- дизайн бесплатных шаблонов сильно ограничен, а в Personal и Premium (250 и 550 рублей в месяц) очень убогие шаблоны, без возможности гибкой настройки;

- в бесплатной версии не нашёл возможность использовать сервисы аналитики Гугл и Яндекс, а так же инструменты SEO;

- плагины (даже простые) в бесплатной версии не подключить;

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

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


Традиционно для самостоятельной установки WordPress (и развёртывания других веб-приложений и динамических сайтов) используются популярные наборы компонентов LAMP (Linux, Apache HTTP Server, MySQL, PHP) и его вариация LEMP. (в которой веб-сервер Apache заменяется на Nginx). В LEMP Apache заменяется легким, но мощным Nginx, который может обеспечить более предсказуемую производительность при высоких нагрузках. Но я выбрал альтернативный и по моему мнению наиболее простой способ установки, немного отличающийся от традиционных — установка WordPress с помощью Docker Compose и LinuxServer SWAG.


SWAG — Secure Web Application Gateway (ранее известный как letsencrypt, не имеющий отношения к Let’s Encrypt ™) настраивает веб-сервер Nginx и обратный прокси-сервер с поддержкой php и встроенным клиентом certbot, который автоматизирует процессы генерации и обновления бесплатных сертификатов SSL-сервера (Let’s Encrypt и ZeroSSL). Он также содержит fail2ban для предотвращения вторжений.


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

- Простота. Фактически мы разворачиваем готовый контейнер «в пару кликов» и сайт на WordPress у нас готов,. Перед этим буквально небольшая подготовка системы Lunux (Ubuntu) в плане установки Docker, Docker Compose и Portainer

- Установка WordPress на Ubuntu с HTTPS. Здесь у нас готовый автоматический процесс генерации и обновления бесплатных сертификатов SSL-сервера.

- Бесплатный бэкап WordPress. Можно использовать для этого плагины WordPress, но в Jetpack от WordPress — эта функция платная. «UpdraftPlus — Backup/Restore» в бесплатной версии позволяет делать это только вручную. Есть ещё много разных плагинов для бэкапа, например BackupBuddy…, но я в дальнейшем автоматизирую этот процесс средствами Linux, docker — rsync и/или rclone.

- Возможна установка двух, трёх…. WordPress сайтов в один контейнер на одном сервере.


Итак, у вас должна быть предварительно подготовлено:

- Установлена операционная система Linux (Ubuntu, Debian или другая);

- Установлен Docker, Docker Compose и Portainer;

- Опционально есть доменное имя для вашего блога. Если ещё нет, то в качестве альтернативы для теста можете бесплатно создать домен на duckdns.org. Нам это нужно будет для того, что бы входить на сайт не по IP адресу, и получить сертификат для HTTPS.

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

В дальнейшем вы сможете зарегистрировать и привязать свой полноценный домен второго уровня для своего сайта или блога в сервисе регистрации доменов, например у российского регистратора доменных имен — REG.RU (Мой промо-код ECA7-B285-57FC-20C2 даст скидку 5% на заказ домена). :-)


Далее будем использовать docker-compose для создания и запуска своих образов и контейнеров, а именно LinuxServer / SWAG и WordPress. Вот содержание docker-compose.yml для этого:

version: '3.3'
services:
swag:
image: linuxserver/swag
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Samara
- URL=ВашДомен.duckdns.org # change for your domain
- VALIDATION=http
- EMAIL=mail@mail.ru # optional
- EXTRA_DOMAINS=ВашДомен.duckdns.org # change for your domain
volumes:
- ./config:/config
ports:
- 443:443
- 80:80
restart: unless-stopped
db_pikabu: # change name for every new site wordpress
image: mysql:5.7
container_name: db_pikabu # change name for every new site wordpress
restart: always
ports:
- 3315:3306 # change port for every new site wordpress
volumes:
- ./config/www/pikabu/mysql:/var/lib/mysql # change directory for every new site wordpress
environment:
MYSQL_DATABASE: wordpress
MYSQL_ROOT_PASSWORD: Pikabu1234 # change this password for you
wordpress_pikabu: # change name for every new site wordpress
image: wordpress:latest
container_name: wordpress_pikabu # change name for every new site wordpress
restart: always
ports:
- 7000:80 # change port for every new site wordpress
volumes:
- ./config/www/pikabu/config/php.conf.uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # change directory for every new site wordpress
- ./config/www/pikabu/wordpress:/var/www/html # change directory for every new site wordpress
environment:
WORDPRESS_DB_HOST: db_pikabu # change optional
WORDPRESS_DB_NAME: wordpress # change optional
WORDPRESS_DB_USER: root # change optional
WORDPRESS_DB_PASSWORD: Pikabu1234 # change this password for you
depends_on:
- db_pikabu # change name for every new site wordpress

ВАЖНО СОБЛЮДАТЬ ТАБУЛЯЦИЮ (ОТСТУПЫ)!!! При создании docker-compose.yml, но Пикабу не поддерживает «форматирование текста с отступами». Для удобного копирования форматированного текста, когда приступите непосредственно к установке WopdPress можете перейти на эту страницу, где код отформатирован с отступами.


Где стоит хэштег «# change ….» — укажите свои данные !


Итак, создаём файл docker-compose.yml в удобном для вас месте и удобным для вас способом. Я покажу пример для Ubuntu 20.04 на VPS Oracle (конечно же это полная аналогия и для других вариантов).


Создам его по пути /home/ubuntu


# echo "version: '3.3'

services:" >/home/ubuntu/docker-compose.yml


Вы можете командой echo сразу отправить весь текст (содержание файла выше), либо открыть файл командой nano и вставить содержимое:


# sudo nano /home/ubuntu/docker-compose.yml

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

После этого сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.


Либо, всё то же самое можно сделать через WinSCP

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Для создания и редактирования таких файлов рекомендую использовать Notepad++ вместо «блокнота»:

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

После создания и сохранения файла, переходим в терминале в папку, где у нас лежит docker-compose.yml командой # cd (в Ubuntu 20.04 на VPS Oracle мы по умолчанию находимся в ней) и запускаем контейнеры:


# docker-compose up -d


Если вы ставили Ubuntu 20.04 на бесплатный VPS сервер от Oracle, то необходимо открыть порт 80 и 443 в Oracle. Как это сделать написано в конце этого поста.


Для «домашней» Ubuntu или Debian на сервере или десктопе тоже нужно открыть порты 80 и 443 для Let’s Encrypt, пробросив их на вашу машину в роутере (см. инструкцию к нему)


После этого проверяем в Portainer, что контейнеры swag, wordpress_pikabu и db_pikabu успешно запустились:

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Открываем (для редактирования, удобным вам способом) файл с настройками Nginx — default.

(В папке, где у вас был файл docker-compose.yml — появилась папка config)

В моём примере файл default расположен по пути /home/ubuntu/config/nginx/site-confs

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

# sudo nano /home/ubuntu/config/nginx/site-confs/default


ALT+T — очищаем всё содержимое файла default, и вставляем следующее:


# redirect all traffic to https
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
# main server block for site 1
server {
listen 443 ssl;
#listen [::]:443 ssl;
root /config/www/pikabu/wordpress; # change directory for every new site
index index.html index.htm index.php;
server_name ВашДомен.duckdns.org; # change for your domain
# enable subfolder method reverse proxy confs
include /config/nginx/proxy-confs/*.subfolder.conf;
# all ssl related config moved to ssl.conf
include /config/nginx/ssl.conf;
client_max_body_size 128m; # change opcional, default 0
location / {
try_files $uri $uri/ /index.html /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}

После этого сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.


Где стоит хэштег «# change ….» — укажите свои данные !


ВашДомен.duckdns.org и директорию /config/www/pikabu/wordpress, где вместо pikabu указываете папку в которой создали wordpress на предыдущем этапе.

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Перезапускаем в Portainer контейнер swag

После этого заходим в браузере на свой почти созданный сайт по адресу HTTPS://ВашДомен, где у вас должно появится окно «пятиминутной установки WordPress». Выбираем язык:

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Заполняем поля для своего сайта:

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Если появится такая ошибка, то просто перезапустите в Portainer контейнеры wordpress и db

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

У С Ё готово! )))

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Входим со своими учётными данными и настаиваем свой сайт на wordpress как вам угодно… А пока на главной странице сайта вас встретит вот такая страничка, с вашим названием сайта конечно же)))

Простая установка WordPress с HTTPS (SSL) на Ubuntu с помощью Docker Compose и LinuxServer SWAG. (Пример на Always Free VPS от Oracle) Wordpress, Ubuntu, Https, Linux, VPS, Oracle, Блог, Сайт, Бесплатно, Docker, Длиннопост

Я же по прежнему буду вести тему «умного дома» в своём профиле на Пикабу, а вот если нужно будет показать какой-либо форматированный код (команды Linux, YML-файлы…), буду публиковать его уже на своём блоге — https://huny.blog )))


Всем пока и Бобра ;-)

Показать полностью 14
[моё] Wordpress Ubuntu Https Linux VPS Oracle Блог Сайт Бесплатно Docker Длиннопост
15
4
epimetheus84
epimetheus84
4 года назад

C просторов⁠⁠

C просторов Docker, Windows, Форум, Github

Невольный перевод:
Почему, скажите мне, почему ваш Docker *ругается по-русски* \ работает нестабильно на Винде?
Чтобы нормально запустить этого монстра требуется от 3 до 5 упражнений по перезапуску, переустановка системы, удаление всех контейнеров, потом важно еще поспать недельку, помолиться дней 10, повторить процедуру перезапуска и только потом ВОЗМОЖНО оно заработает.

З.Ы.: При сочетании слов windows и docker Клубничка нужна?

Показать полностью 1
Docker Windows Форум Github
15
36
AlexKoc
4 года назад

Linkedin рекомендует)⁠⁠

Linkedin рекомендует)
[моё] LinkedIn IT юмор Рекомендации IT Docker
5
89
varper
varper
5 лет назад
IT-юмор

Научитесь принимать себя⁠⁠

Научитесь принимать себя
[моё] IT юмор Docker Программирование
14
NeAdminPikabu
NeAdminPikabu
5 лет назад
IT-юмор

Когда не можешь позволить себе SSD⁠⁠

Когда не можешь позволить себе SSD Docker, Linux, IT юмор
Показать полностью 1
[моё] Docker Linux IT юмор
50
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии