Pull to refresh

ep.io — хостинг для python web-приложений

Reading time3 min
Views32K
Сразу хочу сказать что не имею никакого отношения к компании, которая создала этот сервис.

Вступление


До того, как я опробовал хостинг от ep.io, я несколько раз встречал упоминание о нем в интернете, в основном на буржуйских сайтах. Отзывы были только положительные, гики радовались и хвалили сервис. В итоге я все-таки решил его попробовать и недолгая переписка с поддержкой сервиса дала свои результаты — мне выдали инвайт.

Для чего?


Как написано в документации хостинг предназначен для Django, Pylons, Pyramid, Flask, Trac или любых других WSGI-совместимых приложений. Я пока успел попробовать побаловаться с небольшими приложениями на фреймворке bottle.

Регистрация и начало работы


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

По сути каждое приложение это отдельный сабдомен в системе вида имя_приложения.ep.io, который работает в собственной виртуальной среде. Но вы так же можете привязать собственный домен.

Перед загрузкой проекта необходимо создать файл настроек в корне Вашего проекта. Для этого нужно создать файл epio.ini и наполнить так, как Вам нужно. Синтаксис подробно расписан в официальной документации.

Удобной фишкой сервиса является возможность предоставления доступа к отдельному приложения для третьих лиц:


Сам процесс загрузки приложения на сервер очень понятно изложен в документации, поэтому я не буду это пересказывать. Скажу только что я не сразу понял, как правильно заливать в определенное приложение свои файлы. Оказалось что нужно просто добавить ключ -a с именем желаемого приложения в качестве параметра. То есть, для загрузки файлов в приложение «inlanger» нужно написать команду «epio upload -a inlanger».

Вот пример простейшего приложения, которое работает и доступно по адресу inlanger.ep.io:

Файл server.py
# -*- coding: utf-8 -*-
from bottle import *

app = Bottle()

@app.route('/')
def home():
    return '<h1>Hello habr!</h1><br /><a href="/test">Go test URL</a>'

@app.route('/test')
def test():
    return '<h1>This is a test URL!</h1>'

run(app, server='gunicorn')

Не забудьте залить файл bottle.py в корень проекта!

Файл epio.ini
[wsgi]
entrypoint = server:home

Для отладки предоставляется последние 500 строчек console output, который доступен для каждого отдельного приложения.

Файл epio.ini


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

Хранение данных


До недавнего времени сервис не предоставлял доступ к файловой системе. Сейчас сервис позволяет писать в отдельную папку, путь к которой можно получить из переменной окружения EPIO_DATA_DIRECTORY. В качестве БД можно использовать Redis или PostgreSQL(появился недавно). Еще одно важное НО — если вы хотите отправлять email из своего приложения — Вам необходимо будет пользоваться сторонними сервисами, так как эта возможность у сервиса отключена.

Цены


Для любопытных существуют бесплатные квоты. Если Вам их не хватает то можете их увеличить. Увеличить можно количество инстансов, количество месячного трафика и расширить место на винчестере. Цены не то чтобы низкие, но адекватные.

Заключение


Для тех, кому хочется больше узнать о технической стороне этого сервиса и о том в какой среде будет находится Ваше приложение, могу посоветовать почитать официальную документацию. От себя могу сказать что сервис очень молодой, но активно набирает поклонников на западе. Хорошей новостью является то, что пока доступны бесплатные квоты, которые вполне могут покрыть работу простого приложения, которое поможет оценить возможности платформы. Для некоторых простых приложений, таких как домашняя страница, большего и не надо. Я лично использую эту площадку как некий playground для небольших идей, которые часто всплывают в голове. Мне удалось перекинуться парой слов на UAPycon с Andrew Godwin, одним из создателей сервиса, и из этого было понятно что хостинг и дальше будет разиваться, что видно даже за последний месяц. Так как я пользуюсь сервисом дотстаточно недолго то буду рад другим отзывам в комментариях о платформе.
Tags:
Hubs:
Total votes 34: ↑29 and ↓5+24
Comments21

Articles