Твой собственный VC RU
Open source федеративная сеть SEO контента
Демо • Быстрый старт • Примеры • Контакты • Лицензия
- О продукте
- Технологии
- Примеры работающих сайтов
- Быстрый старт
- Конфигурация
- Разработка
- Деплой
- О проекте
- Контакты
- Лицензия
Работаем! — для независимых авторов, компаний и бизнесов, которым важно владеть своим контентом, развивать аудиторию и строить собственные блоги и медиа без зависимости от централизованных платформ.
На централизованных платформах — VC RU, Reddit, Habr — вы не владеете ни аудиторией, ни охватом. Алгоритмы непрозрачны, монетизация ограничена, а полноценный доступ требует корпоративной подписки.
Работаем! — open source федеративная сеть SEO контента. Контент распространяется в децентрализованную сеть (ActivityPub), увеличивая охваты. Ставьте на свой сервер или используйте готовые площадки.
- Полная независимость и контроль над контентом — вы владеете своими данными
- Встроенная дистрибуция через Fediverse (ActivityPub) — автоматическое распространение контента в федеративную сеть
- SEO-оптимизация — ваш контент индексируется поисковыми системами
- Низкие затраты и масштабируемость — для блогов и сообществ
- Открытый исходный код — полная прозрачность и возможность кастомизации
- Svelte/SvelteKit — современный фреймворк для веб-приложений
- TypeScript — типизированный JavaScript
- TailwindCSS — utility-first CSS фреймворк
- Lemmy API — интеграция с децентрализованной социальной сетью
- ActivityPub — протокол для федеративных сетей
- Open Source (AGPL-3.0) — свободная лицензия
Проект уже используется в продакшене на следующих площадках:
- 🌐 rabotaem.app — основная площадка проекта
- 📝 kanun.blog — пример независимого блога
- 📰 zavtra.io — пример медиа-платформы
- 📰 neyrogram.com — пример медиа-платформы
Вы можете использовать уже работающие площадки, такие как rabotaem.app, для публикации своего контента без необходимости настройки собственного сервера.
Если вы хотите полный контроль и независимость, вы можете развернуть свой собственный экземпляр.
docker compose build
docker compose up -dПодробная инструкция по установке и настройке доступна в deploy/README.md (на русском языке).
Настройка проекта осуществляется через переменные окружения. Ниже перечислены наиболее важные параметры.
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_INSTANCE_URL |
URL | lemmy.ml |
PUBLIC_INTERNAL_INSTANCE |
URL | Value of PUBLIC_INSTANCE_URL |
PUBLIC_LOCK_TO_INSTANCE |
bool |
true if PUBLIC_INSTANCE_URL is set |
PUBLIC_FAVICON |
URL | /img/logo-background.svg |
PUBLIC_LANGUAGE |
string |
en |
PUBLIC_LANGUAGE — язык интерфейса (например, ru, en).
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_SSR_ENABLED |
bool |
false |
PUBLIC_MIGRATE_COOKIE |
bool |
false |
PUBLIC_SSR_ENABLED — включает серверный рендеринг для более быстрой начальной загрузки и лучшей индексации поисковыми системами. Также позволяет пользователям с отключенным JavaScript просматривать базовую версию сайта.
PUBLIC_MIGRATE_COOKIE — полезно, если вы хотите переключить Photon на ваш фронтенд по умолчанию. Преобразует cookie из lemmy-ui в аккаунт Photon. Работает только если установлен PUBLIC_INSTANCE_URL.
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_THEME |
JSON | Photon's default colors |
PUBLIC_COLORSCHEME |
system|dark|light | system |
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_EXPANDABLE_IMAGES |
bool |
true |
PUBLIC_MARK_READ_POSTS |
bool |
true |
PUBLIC_HIDE_DELETED |
bool |
true |
PUBLIC_HIDE_REMOVED |
bool |
true |
PUBLIC_NSFW_BLUR |
bool |
true |
PUBLIC_RANDOM_PLACEHOLDERS |
bool |
true |
PUBLIC_REMOVE_CREDIT |
bool |
false |
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_DEFAULT_FEED_SORT |
SortType |
Active |
PUBLIC_DEFAULT_FEED |
ListingType |
All |
PUBLIC_DEFAULT_COMMENT_SORT |
CommentSortType |
Hot |
PUBLIC_MIXED_FEED |
bool |
false |
PUBLIC_MIXED_FEED — при выборе TopDay, по мере промотки лента автоматически перейдёт на TopWeek и далее.
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_SITE_TITLE |
string |
— |
PUBLIC_SITE_DESCRIPTION |
string |
— |
PUBLIC_META_DESCRIPTION |
string |
— |
PUBLIC_OG_TITLE |
string |
— |
PUBLIC_OG_DESCRIPTION |
string |
— |
PUBLIC_OG_IMAGE |
URL | — |
PUBLIC_OG_URL |
URL | — |
PUBLIC_TWITTER_TITLE |
string |
— |
PUBLIC_TWITTER_DESCRIPTION |
string |
— |
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_GA_MEASUREMENT_ID |
string |
— |
PUBLIC_YM_MEASUREMENT_ID |
string |
— |
PUBLIC_GA_MEASUREMENT_ID — идентификатор Google Analytics (формат G-XXXXXXXXXX).
PUBLIC_YM_MEASUREMENT_ID — идентификатор Яндекс.Метрики.
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_TELEGRAM_URL |
URL | — |
PUBLIC_GITHUB_URL |
URL | — |
PUBLIC_PROJECT_ABOUT |
URL/path | — |
PUBLIC_PROJECT_ADVRTISEMENT |
URL/path | — |
PUBLIC_PROJECT_AUTHORS |
URL/path | — |
PUBLIC_PROJECT_RULES |
URL/path | — |
PUBLIC_SHOW_SIDEBAR_BANNER |
bool |
true |
Ссылки на ресурсы, отображаемые в левом сайдбаре. Значения формата /post/ID-slug — внутренние ссылки на посты.
| Variable | Values | Default Value |
|---|---|---|
PUBLIC_AD_POST_IDS |
string |
— |
PUBLIC_AD_POST_IDS — список ID постов через запятую (например, 1364,1291), которые будут показаны в ленте как рекомендуемые/рекламные.
Больше опций доступно в src/lib/settings.ts, в объекте defaultSettings.
Значения для ListingType определены в lemmy-js-client:
AllLocalSubscribedModerator
Значения для SortType (регистр важен) определены в lemmy-js-client:
ActiveHotNewOldTopDayTopWeekTopMonthTopAllMostCommentsNewCommentsTopHourTopSixHourTopTwelveHourTopThreeMonthsTopSixMonthsTopNineMonthsTopYear
Значения для CommentSortType определены в lemmy-js-client:
HotTopNewOldControversial
# Запуск в режиме разработки
npm run dev
# Сборка проекта
npm run build
# Запуск тестов
npm test
# Проверка типов
npm run check
# Предпросмотр собранного проекта
npm run previewСборка и запуск образа локально:
docker compose build
docker compose up -dЕсли у вас есть контейнерный registry, вы можете отправить собранный образ туда:
docker build -t <registry>/rabotaem:latest .
docker push <registry>/rabotaem:latestНа продакшн сервере обновите docker-compose.yml, заменив секцию build на:
image: <registry>/rabotaem:latestЕсли нет контейнерного registry, вы можете собрать архив образа и передать его через SSH:
# Сборка образа
docker build -t rabotaem:latest .
# Сохранение как tar
docker save rabotaem:latest | gzip > rabotaem.tar.gz
# Копирование на сервер через scp
scp rabotaem.tar.gz user@host:/tmp/На сервере загрузите и запустите:
gunzip -c /tmp/rabotaem.tar.gz | docker load
docker compose up -dРаботаем! — это форк Photon, современного клиента для Fediverse, написанного на Svelte. Этот форк был создан для дальнейшей разработки и экспериментов.
Проект основан на Photon от Xyphyn и использует Lemmy в качестве бэкенда для децентрализованной социальной сети.
- 📢 Telegram канал: @rabotaemapp
Этот проект лицензирован под AGPL-3.0.
Для подробностей см. файл LICENSE.