tentd-admin

tentd-admin implements a very basic administration interface for tentd. It also mounts tentd as a Rack app, so it's the easiest way to get started with a Tent Protocol implementation.

Getting Started

Heroku

heroku create --addons heroku-postgresql:dev
heroku pg:promote $(heroku pg | head -1 | cut -f2 -d" ")
heroku config:add ADMIN_USERNAME=admin ADMIN_PASSWORD=password SERVE_ASSETS=1
git push heroku master
heroku open

Ruby

tentd-admin requires Ruby 1.9. If you don't have Ruby 1.9 you can use your operating system's package manager to install it.

OS X

The easiest way to get Ruby 1.9 on OS X is to use Homebrew.

brew install ruby

If you need to switch between ruby versions, use rbenv and ruby-build.

Ubuntu

sudo apt-get install ruby1.9.1-full libxml2 libxml2-dev libxslt1-dev
sudo update-alternatives --config ruby # make sure 1.9 is the default

PostgreSQL

tentd-admin requires a PostgreSQL database.

OS X

Use Homebrew or Postgres.app.

brew install postgresql
createdb tent_server

Bundler

Bundler is a project dependency manager for Ruby.

gem install bundler

Starting tentd-admin

Clone this repository, and cd into the directory. This should start the app:

bundle install
DATABASE_URL=postgres://localhost/tent_server ADMIN_USERNAME=admin ADMIN_PASSWORD=admin bundle exec puma -p 3000

If all goes well, you'll have a Tent server available at http://localhost:3000/ and you can log into the admin interface at http://localhost:3000/admin with the username and password admin. After setting up the base profile in the admin, this should show the profile JSON:

curl http://localhost:3000/profile

Contributing

Currently tentd-admin only implements app authentication and following creation. These are some things that could be done to improve the app:

  • Add support for managing (CRUD) all of the data in Tent: profiles, followers, followings, apps, and posts.
  • Add a log in the UI of API calls to tentd for easy debugging.
  • Write tests and refactor the code.
  • Make a pretty UI.
  • Allow creation of the database and setting username/password from the UI.
  • Show better app details in OAuth flow (icon, post/profile type details)
  • Replace tentd database hooks with API calls
  • Create an omnibus-style package that installs and configures everything needed to get started with tentd-admin.