Giter VIP home page Giter VIP logo

syme's Introduction

Syme

This project is no longer maintained; if you want to do this kind of pairing I recommend you try tmate instead.

Instant collaboration on GitHub projects.

Almost in the act of stepping on board, Gabriel Syme turned to the gaping Gregory.

"You have kept your word," he said gently, with his face in shadow. "You are a man of honour, and I thank you. You have kept it even down to a small particular. There was one special thing you promised me at the beginning of the affair, and which you have certainly given me by the end of it."

"What do you mean?" cried the chaotic Gregory. "What did I promise you?"

"A very entertaining evening," said Syme, and he made a military salute with the sword-stick as the steamboat slid away.

โ€” The Man who was Thursday, by G.K. Chesterton

Usage

  1. Enter the name of a GitHub repo. (Authorize Syme via GitHub if you haven't already.)
  2. Enter your AWS credentials and names of GitHub users to invite.
  3. SSH into the instance once it's booted using the command shown and launch tmux.
  4. Send the login info to the users you have invited.

To invite a whole GitHub organization, simply prefix the organization name with a + in the form. Syme handles launching the instance, setting up public keys, and cloning the repository in question.

Your AWS credentials are kept in an encrypted cookie in your browser and aren't stored server-side beyond the scope of your request.

Inspired by pair.io.

Setting up your own

  • Create a PostgreSQL DB and export $DATABASE_URL to point to it.

  • Create the DB schema with lein run -m syme.db.

Additional steps for production

If you don't set these, Syme will use an OAuth registration which is only valid for http://localhost:5000.

Additional optional steps for additional features

  • Generate 16 random characters and export it as $SESSION_SECRET. Needed if you want cookies to outlast server restarts.

  • Export $CANONICAL_URL as the fully-qualified URL of the splash page. Needed if you want hooks to update instance status.

  • Sign up for Amazon Route53 and export $AWS_ACCESS_KEY and $AWS_SECRET_KEY.

  • Register a domain and export it as $SUBDOMAIN formatted like "%s.%s.syme.in". The %s places will be filled with the instance id and instance owner.

  • Host the DNS under Route53 and export its $ZONE_ID.

License

Copyright ยฉ 2013, 2014, 2017 Phil Hagelberg and contributors

Distributed under the Eclipse Public License, the same as Clojure.

syme's People

Contributors

abizern avatar cbilson avatar devn avatar gtrak avatar jprof avatar maio avatar technomancy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

syme's Issues

Email users who are invited

Or just leave it up to the user to IM them or something. If we do email automatically, we should leave a checkbox so you can turn it off.

Set longer expiry on creds cookie

Currently if you close your browser and return to an instance page, you won't be able to halt it since your browser doesn't have the creds cookie. You'd need to launch a new instance to create the cookie, which doesn't make sense.

Prompting for creds if it's not there when halting would probably still be a good idea though.

Create custom AMI

The biggest annoyance with Syme is waiting for bootstrap. The longest steps in bootstrapping are installing packages, so an AMI that ships with these packages out of the box would be less annoying:

  • git
  • tmux
  • emacs24-nox
  • vim-nox
  • openjdk-7-jre-headless (this one takes forever to install)
  • round it out with curl, tree, zip, unzip, possibly rubygems

Adding a Mumble server would allow for hassle-free voip, though the security group would have to be modified to open the port for it.

Block SSH agent forwarding

You don't want to expose your SSH agent to other users, even if you're pairing with them. We could warn people, but it would be better to block it at a server level.

This will also require performing clones using HTTPS git and pushing with a password.

terminate button on UI disappears after failure

After the post-boot setup failed on me (not sure why) the terminate button on the UI disappeared. I was able to get it back by refreshing the page and playing catch-a-button before it disappeared again.

Can't figure out how to terminate a comment to a post

Running on Chrome on OSX.

When I enter a comment on a post, return or enter does nothing. Tab leaves the comment field but does not submit it. Any attempt to leave the page displays the popup about having unsaved changes.

Did I miss something?

Check out dotfiles for a given user?

Might want to automate checking out dotfiles for the owner so they don't have to manually grab all their marmalade packages, bashrc, etc.

Or maybe not; this can be done easily enough client-side.

motd is always an empty file

Even upon successful convergenge, /etc/motd is always empty.

Strange because /etc/tmux.conf is set, and they are populated the exact same way.

Problems getting started

Question more than an issue - and a newbie one at that.

I successfully invited myself and one other to a project (keithmantell/cljtpc).

  • What am I meant to see when things are setup? When I ssh in I can see only syme and ubuntu under home and not much in each.
  • Should the surce code from the github project be somewhere?
  • I went so far as to add a bootstrap (for instance install emacs24-nox), .profile etc. but none of that appears to have been used.

I am probably missing something simple - if I should ask this level of question elsewhere, let me know.

Keith

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.