Самостоятельно размещаемый канал TikTok для ваших клипов
Создайте ленту TikTok со своими видео.
Erin — это простой и автономный сервис, который позволяет вам просматривать собственные клипы с помощью известного вертикального смахивания TikTok. На Reddit был сделан запрос на самостоятельное размещение приложения, которое могло бы показывать отфильтрованные видео с помощью интерфейса TikTok, поэтому я это сделал.
В Эрин реализованы все эти функции:
Кроме того, обратите внимание, что Erin — это всего лишь приложение React, полностью созданное Caddy. Caddy одновременно заботится об аутентификации, обслуживании статических файлов и приложении React.
*: Вы можете замаскировать видео, чтобы скрыть их из своей ленты. Если вы хотите увидеть, какие видео были замаскированы, и даже снять их маски, вы можете нажать и удерживать кнопку
Mask
, и откроется менеджер.
**: По умолчанию Эрин создаст случайный канал из всех видео в вашей папке и ее подкаталогах. Однако если вы хотите создавать собственные каналы (списки воспроизведения), вы можете создавать подкаталоги и соответствующим образом упорядочивать свои видео. Например:
https://my-server.tld/directory-a
создаст канал из видео, расположенных в/directory-a
, и работает с любым путем (поэтому поддерживаются вложенные папки).
***: Вы можете показать канал (с аватаром и именем), подпись и ссылку для всех ваших видео, используя файл метаданных. Файл метаданных может находиться в любом месте папки видео и должен соответствовать имени файла связанного с ним видео, заменяя расширение на JSON. Например: метаданные
my-video.mp4
могут находиться вmy-video.json
. Здесь показан формат метаданных. Обратите внимание, что вы можете использовать необработанный HTML в заголовке для создания собственных стилей и эффектов.
Для получения дополнительной информации прочитайте о конфигурации.
Прежде чем продолжить, независимо от Docker, Docker Compose или автономного развертывания, убедитесь, что вы создали каталог videos
, содержащий все ваши видеофайлы. Позже этот каталог станет доступен вашему экземпляру Erin (путем привязки тома к вашему контейнеру Docker или размещения каталога рядом с вашим Caddyfile).
Вы можете очень быстро запустить Erin с помощью Docker из командной строки.
Вы можете использовать следующие команды:
# Create a .env file
touch .env
# Edit .env file ...
# Option 1 : Run Erin attached to the terminal (useful for debugging)
docker run --env-file .env -p < YOUR-PORT-MAPPING > -v ./videos:/srv/videos:ro mosswill/erin
# Option 2 : Run Erin as a daemon
docker run -d --env-file .env -p < YOUR-PORT-MAPPING > -v ./videos:/srv/videos:ro mosswill/erin
Примечание. Файл
sample.env
расположен в корне репозитория и поможет вам начать работу.
Примечание. При использовании
docker run --env-file
обязательно удалите кавычки вокругAUTH_ENABLED
иAUTH_SECRET
, иначе ваш контейнер может выйти из строя из-за неожиданной интерполяции и преобразований типов, выполняемых Docker за кулисами.
Чтобы помочь вам быстро приступить к работе, несколько примеров файлов docker-compose
расположены в каталоге «examples/».
Вот описание каждого примера:
docker-compose.simple.yml
: запустить Erin как фронтальную службу через порт 443, при этом переменные среды будут указаны непосредственно в файле docker-compose
.
docker-compose.proxy.yml
: установка, в которой Эрин работает на порту 80, за прокси-сервером, прослушивающим порт 443.
Когда ваш файл docker-compose
готов, вы можете использовать следующие команды:
# Run Erin in the current terminal (useful for debugging)
docker-compose up
# Run Erin in a detached terminal (most common)
docker-compose up -d
# Show the logs written by Erin (useful for debugging)
docker logs < NAME-OF-YOUR-CONTAINER >
Чтобы запустить Erin, вам нужно будет установить следующие переменные среды в файле .env
:
Примечание. Обычные переменные среды, представленные в командной строке, также работают.
Примечание. Файл
sample.env
расположен в корне репозитория и поможет вам начать работу.
Параметр | Тип | Описание | По умолчанию |
---|---|---|---|
PUBLIC_URL | boolean | Общедоступный URL-адрес, используемый для удаленного доступа к вашему экземпляру Erin. (Пожалуйста, укажите HTTP/HTTPS и порт, если он не стандартный 80 или 443. Не добавляйте косую черту в конце) (Прочитайте официальную документацию Caddy) | https://локальный хост |
AUTH_ENABLED | string | Должна ли быть включена базовая аутентификация. (Этот параметр чувствителен к регистру) (Возможные значения: true, false) | истинный |
AUTH_SECRET | string | Безопасный хэш пароля, используемый для защиты вашего экземпляра Эрин. | Хэш secure-password |
APP_TITLE | string | Пользовательский заголовок, который вы хотите отображать на вкладке браузера. (Совет: вы можете использовать здесь [VIDEO_TITLE] , если хотите, чтобы Эрин динамически отображала заголовок текущего видео.) | Эрин — лента TikTok для ваших собственных клипов |
AUTOPLAY_ENABLED | boolean | Должен ли быть включен автозапуск. (Этот параметр чувствителен к регистру) (Возможные значения: true, false) | ЛОЖЬ |
PROGRESS_BAR_POSITION | string | Где на экране должен располагаться индикатор выполнения. (Этот параметр чувствителен к регистру) (Возможные значения: снизу, сверху) | нижний |
Совет. Чтобы создать безопасный хэш для вашего экземпляра, используйте следующую команду:
docker run caddy caddy hash-password --plaintext " your-new-password "
Примечание. При использовании переменных среды
docker-compose.yml
, если хеш вашего пароля содержит знаки доллара: удвойте их все, иначе приложение выйдет из строя. Например:$ab$cd$efxyz
становится$$ab$$cd$$efxyz
. Это связано с оговорками, связанными с системой интерполяции строкdocker-compose
.
Если у вас возникнут какие-либо проблемы при работе Erin, обратитесь к следующим типичным проблемам, которые могут возникнуть.
Если ни один из этих вариантов не соответствует вашему случаю, смело открывайте проблему.
Эрин работает на веб-сервере Caddy.
Как результат :
Помимо этого, убедитесь, что соблюдены следующие требования:
Если Erin работает как отдельное приложение без прокси:
A erin XXX.XXX.XXX.XXX
для https://erin.your-server-tld
).env
правильно настроен в соответствии с разделом «Конфигурация».Если Эрин работает внутри Docker/за прокси-сервером:
PUBLIC_URL
правильно настроен в .env
.В любом случае, важной частью является настройка и чтение официальной документации Caddy.
Чтобы Эрин могла обслуживать ваши видеофайлы, они должны соответствовать следующим требованиям:
.mp4
, .ogg
, .webm
. (Есть единственные расширения, поддерживаемые веб-браузерами.)/srv/videos
вашего контейнера Docker с использованием тома.Чтобы убедиться, что ваши видео находятся внутри контейнера Docker и в нужном месте, вы можете:
docker exec -it <NAME-OF-YOUR-CONTAINER> sh
ls /srv/videos
Если Эрин по-прежнему не может найти ваши видео, несмотря на то, что все правильно настроено, откройте проблему, включая вывод консоли Javascript вашего браузера и вкладки сети, когда запрос поступает в /media/
. Возможно, это связано с кэшированием браузера, неверной конфигурацией или неверными учетными данными.
На данный момент вам нужно просто поместить новые видеофайлы в каталог видео, смонтированный с помощью Docker. Эрин автоматически подберет эти новые файлы, и когда вы обновите браузер, вы увидите их.
Эрин автоматически переведет имя вашего файла в заголовок, который будет отображаться в интерфейсе.
Преобразование осуществляется следующим образом:
-
становится
__
становится -
Вот несколько примеров, которые помогут вам назвать файлы:
Vegas-trip__Clip-1.mp4
становится Vegas trip - Clip 1
Spanish-language__Lesson-1.mp4
становится Spanish language - Lesson 1
Spiderman-1.ogg
становится Spiderman 1
Эрин случайным образом перемешивает ваши видеофайлы при каждом обновлении браузера.
В результате не существует определенного порядка показа ваших видео.
На данный момент Эрин попытается получить только те видео, которые имеют поддерживаемое расширение.
Поддерживаемые расширения: .webm
, .mp4
и .ogg
.
Однако обратите внимание, что Safari, похоже, не поддерживает .ogg
, поэтому пользователи Safari будут игнорировать эти видео.
Если у вас есть какие-либо советы или идеи по поддержке дополнительных расширений (особенно для пользователей Safari), смело открывайте проблему.
Кажется, есть несколько предостережений при использовании Docker/Docker Compose с хэшами паролей, сгенерированными Caddy.
Вот правила, которым вы должны следовать:
docker run ... --env-file .env ...
, тогда ваш AUTH_SECRET
вообще не должен иметь кавычек, и все знаки доллара должны оставаться такими, какие они есть, без выхода. или удвоениеdocker-compose.yml
, то ваш AUTH_SECRET
должен иметь удвоенный знак доллара. Пример: i$am$groot
становится i$$am$$groot
.Тем не менее, помните, что хеш вашего пароля должен быть сгенерирован с помощью следующей команды:
docker run caddy caddy hash-password --plaintext " your-new-password "
Пожалуйста, не стесняйтесь открывать проблему, объясняя, что происходит, и описывая вашу среду.
Эй, эй! Всегда полезно сказать спасибо и упомянуть людей и проекты, которые помогают нам двигаться вперед.
Большое спасибо отдельным лицам/командам, стоящим за этими проектами:
И не забудьте упомянуть Эрин, если вам это нравится или если это вам чем-то поможет!