📕 yarn is a Self-Hosted, Twitter™-like Decentralised Microblogging platform. No ads, no tracking, your content, your data! https://yarn.social/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

13 KiB

twtxt

GitHub All Releases Docker Cloud Build Status Docker Pulls Docker Image Size (latest by date)

Go Report Card codebeat badge GoDoc GitHub license

📕 twtxt是一个类似Twitter™的自托管式分散式微博客平台。没有广告,没有跟踪(针对您的内容和数据)!

从技术上讲,它twtxt是Web应用程序和api形式的多用户twtxt客户端。它支持多个用户,还直接托管用户供稿, 并以最少的用户配置文件提供熟悉的“社交”体验。

它还利用Markdown以及照片,视频甚至音频等多媒体来支持“丰富”文本。

App Store和Play Store还提供了一组移动APP

注意:詹姆斯·米尔斯,,在预算有限的情况下,首先在相当便宜的硬件上运行了这个实例(我希望有很多twtxt实例)。请公平使用它,以便每个人都可以平等使用它!请务必在注册之前阅读/ privacy政策(非常简单)并祝您愉快!🤗

赞助该项目以支持新功能的开发,改进现有功能并修复错误! 或支持人员联系以获取有关运行自己的Pod的帮助! 或托管您自己的Twtxt Feed,并支持我们的扩展程序。

Demo_1

移动 App

Goryon for Twt可在App Store和Play商店中使用。

您的移动设备上安装Goryon

托管 Pods

该项目提供了该平台的完全托管式一键式实例,我们称其为Twt.social pods。

请访问 Twt.social 获取您的 pod !

注意:截至2020年8月15日(评论 公告 博客),这是完全免费的,我们邀请任何人与我们联系以获取邀请码,成为最早的几个pod所有者之一!

安装

预编译二进制包

注意:在解决问题#250之前,请不要使用预构建的二进制文件。请从源代码构建或使用Docker 镜像。谢谢你。♂‍♂️

首先,请尝试使用Releases页面上可用的预构建二进制包。

使用 Homebrew

我们为 MacOS 用户提供了 Homebrew 包, 包含命令行客户(yarn)和服务端(yarnd)程序

brew tap jointwt/twtxt
brew install twtxt

运行服务端:

yarnd

运行客户端:

twt

从源代码构建

如果您熟悉Go开发, 可以使用这种方法:

  1. 克隆仓库 (重要的)
git clone https://git.mills.io/yarnsocial/yarn.git
  1. 安装依赖项 (重要的)

Linux, macOS:

make deps

请注意,为了使媒体上载功能正常工作,您需要安装ffmpeg及其关联的-dev软件包。有关可用性和名称,请咨询您的发行版的软件包存储库。

FreeBSD:

  • 安装 gmake
  • 安装 pkgconfpkg-config gmake deps
  1. 构建二进制包

Linux, macOS:

make

FreeBSD:

gmake

使用

命令行客户端

  1. 登录您的 Twt.social pod:
$ ./twt login
INFO[0000] Using config file: /Users/prologic/.twt.yaml
Username:
  1. 查看您的时间线
$ ./yarn timeline
INFO[0000] Using config file: /Users/prologic/.twt.yaml
> prologic (50 minutes ago)
Hey @rosaelefanten 👋 Nice to see you have a Twtxt feed! Saw your [Tweet](https://twitter.com/koehr_in/status/1326914925348982784?s=20) (_or at least I assume it was yours?_). Never heard of `aria2c` till now! 🤣 TIL

> dilbert (2 hours ago)
Angry Techn Writers ‣ https://dilbert.com/strip/2020-11-14
  1. 发表推文 (post):
$ ./yarn post
INFO[0000] Using config file: /Users/prologic/.twt.yaml
Testing `yarn` the command-line client
INFO[0015] posting twt...
INFO[0016] post successful

使用Docker镜像

运行compose:

docker-compose up -d

然后访问: http://localhost:8000/

Web App

运行 yarnd:

yarnd -R

NOTE: 默认是禁止用户注册的, 使用 -R 标记打开注册选项

然后访问: http://localhost:8000/

下面是一些命令行客户端的配置项:

$ ./yarnd --help
Usage of ./yarnd:
  -E, --admin-email string          default admin user email (default "support@twt.social")
  -N, --admin-name string           default admin user name (default "Administrator")
  -A, --admin-user string           default admin user to use (default "admin")
      --api-session-time duration   timeout for api tokens to expire (default 240h0m0s)
      --api-signing-key string      secret to use for signing api tokens (default "PLEASE_CHANGE_ME!!!")
  -u, --base-url string             base url to use (default "http://0.0.0.0:8000")
  -b, --bind string                 [int]:<port> to bind to (default "0.0.0.0:8000")
      --cookie-secret string        cookie secret to use secure sessions (default "PLEASE_CHANGE_ME!!!")
  -d, --data string                 data directory (default "./data")
  -D, --debug                       enable debug logging
      --feed-sources strings        external feed sources for discovery of other feeds (default [https://feeds.twtxt.net/we-are-feeds.txt,https://raw.githubusercontent.com/jointwt/we-are-twtxt/master/we-are-bots.txt,https://raw.githubusercontent.com/jointwt/we-are-twtxt/master/we-are-twtxt.txt])
      --magiclink-secret string     magiclink secret to use for password reset tokens (default "PLEASE_CHANGE_ME!!!")
  -F, --max-fetch-limit int         maximum feed fetch limit in bytes (default 2097152)
  -L, --max-twt-length int          maximum length of posts (default 288)
  -U, --max-upload-size int         maximum upload size of media (default 16777216)
  -n, --name string                 set the pod's name (default "twtxt.net")
  -O, --open-profiles               whether or not to have open user profiles
  -R, --open-registrations          whether or not to have open user registgration
      --session-expiry duration     timeout for sessions to expire (default 240h0m0s)
      --smtp-from string            SMTP From to use for email sending (default "PLEASE_CHANGE_ME!!!")
      --smtp-host string            SMTP Host to use for email sending (default "smtp.gmail.com")
      --smtp-pass string            SMTP Pass to use for email sending (default "PLEASE_CHANGE_ME!!!")
      --smtp-port int               SMTP Port to use for email sending (default 587)
      --smtp-user string            SMTP User to use for email sending (default "PLEASE_CHANGE_ME!!!")
  -s, --store string                store to use (default "bitcask://twtxt.db")
  -t, --theme string                set the default theme (default "dark")
  -T, --twts-per-page int           maximum twts per page to display (default 50)
  -v, --version                     display version information
      --whitelist-domain strings    whitelist of external domains to permit for display of inline images (default [imgur\.com,giphy\.com,reactiongifs\.com,githubusercontent\.com])
pflag: help requested

配置你的 Pod

至少应设置以下选项:

  • -d /path/to/data
  • -s bitcask:///path/to/data/twtxt.db (默认的)
  • -R 开放注册.
  • -O 公开配置.

其他大多数配置值都应通过环境变量来完成

建议配置 Pod “管理员”账号,可以通过以下环境变量设置:

  • ADMIN_USER=username
  • ADMIN_EMAIL=email

为了配置用于密码恢复的电子邮件设置以及/support 和/abuse端点,您应该设置适当的SMTP_

强烈建议你设置以下值,以确保您的Pod安全:

  • API_SIGNING_KEY
  • COOKIE_SECRET
  • MAGICLINK_SECRET

这些值应使用安全的随机数生成器生成,并且长度应为64个字符长度。 您可以使用以下Shell代码片段为您的Pod生成上述值的机密信息

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1

勿发布共享这些值。确保仅在环境变量中设置

生产环境部署

Docker Swarm

您可以使用twtxt.yaml , 基于Docker Stack部署 twtxtDocker Swarm 集群. 这也取决于并使用Traefik入口负载均衡器,因此您还必须在集群中对其进行适当配置和运行。

docker stack deploy -c twtxt.yml

新闻报导

赞助

支持twtxt的持续开发!

赞助

贡献

如果您对这个项目有兴趣, 我们很欢迎您通过以下几种方式做出贡献:

  • 提交问题 -- 对于任何错误或想法,新功能或常规问题
  • 提交一两个PR, 以改进完善项目!

请阅读 贡献准则开发文档 或在 /docs 查看更多内容.

请注意: 如果您想为Github之外的项目做出贡献 请与我们联系并告知我们!我们已经将此项目镜像到Gitea构建的私有仓库 并且可以通过这种方式完全支持外部协作者(甚至通过电子邮件!)

贡献者

感谢所有为该项目做出贡献,进行了实战测试,在自己的项目或产品中使用过它,修复了错误,提高了性能甚至修复了文档中的小错字的人!谢谢您,继续为我们贡献力量!

您可以找到一个AUTHORS文件,其中保存了该项目的贡献者列表。如果您提供公关,请考虑在其中添加您的名字。还有Github自己的贡献者统计数据

进展

Stargazers over time

相关项目

开源协议

twtxt 是基于 MIT 协议 构建