mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-05-25 03:07:42 +03:00
Edits
parent
2174d79ff7
commit
6c26332089
55
FAQ.md
55
FAQ.md
@ -10,38 +10,39 @@ connecting to a server, and connecting to a specific channel.
|
|||||||
|
|
||||||
## How can I build ssh-chat?
|
## How can I build ssh-chat?
|
||||||
|
|
||||||
First make sure you have a copy of the Go compiler (1.6+ should be fine). Next you need a workspace for
|
You'll need a recent version of the Go compiler (1.7 is best, but 1.5+ should work).
|
||||||
the Go compiler to do all of it's builds. Make a directory, something like `work` in your $HOME folder,
|
|
||||||
where we can place the source folder into.
|
Next you'll need to setup your Go development environment. Check this article for details: [How to Write Go Code](https://golang.org/doc/code.html).
|
||||||
|
|
||||||
|
Long story short, something like this:
|
||||||
|
|
||||||
The next step is setting up our GOPATH so Go knows where it can start building and downloading packages.
|
|
||||||
After that we can copy the source code into the GOPATH directory for compiling.
|
|
||||||
``` bash
|
``` bash
|
||||||
mkdir ~/work
|
$ mkdir $HOME/work
|
||||||
export GOPATH=~/work # add this to your .bashrc/.zshrc file to save you time
|
$ export GOPATH=$HOME/work # Add this to your ~/.bashrc or similar
|
||||||
go get github.com/shazow/ssh-chat
|
$ go get github.com/shazow/ssh-chat
|
||||||
cd $GOPATH/src/github.com/shazow/ssh-chat
|
$ cd $GOPATH/src/github.com/shazow/ssh-chat
|
||||||
make
|
$ make
|
||||||
```
|
```
|
||||||
|
|
||||||
That should make the workspace directory, export the GOPATH to your environment, clone the
|
That should make the workspace directory, export the GOPATH to your environment, clone the
|
||||||
repository into the workspace, change directory into the code, and start executing the Makefile instructions
|
repository into the workspace, change directory into the code, and run the Makefile instructions
|
||||||
for you.
|
for you.
|
||||||
|
|
||||||
If you have any trouble building, please open an issue on the tracker and let us know what problems you run
|
If you have any trouble building, please open an issue on the tracker and let us know what problems you run
|
||||||
into during the build process.
|
into during the build process.
|
||||||
|
|
||||||
|
|
||||||
## How can I contribute to ssh-chat?
|
## How can I contribute to ssh-chat?
|
||||||
|
|
||||||
So once you've set up the build phase, you can start contributing right away! `ssh-chat` uses
|
So once you've set up the build phase, you can start contributing right away! `ssh-chat` uses
|
||||||
Go, so if you are familiar with C/C++ or Java, Go should be a snap. Check out the following
|
Go, so if you are familiar with C/C++ or Java, Go should be a snap. Check out the following
|
||||||
sites for quick insight into the Go language.
|
sites for quick insight into the Go language.
|
||||||
|
|
||||||
* [A Tour of Go](https://tour.golang.org/welcome/1)
|
* [A Tour of Go](https://tour.golang.org/)
|
||||||
* [Go By Example](https://gobyexample.com/)
|
* [Go By Example](https://gobyexample.com/)
|
||||||
|
|
||||||
Next, before you start committing changes, you will want to create a different branch to work on, and
|
Next, before you start committing changes, you will want to create a different branch to work on, and
|
||||||
fork `ssh-chat` so you can create Pull Requests. First create a fork, then we will go over how to
|
fork `ssh-chat` so you can create Pull Requests. First [create a fork](https://github.com/shazow/ssh-chat#fork-destination-box), then we will go over how to create a branch.
|
||||||
create a branch.
|
|
||||||
|
|
||||||
Once you've forked `ssh-chat`, go into your shell and create a new Git branch. Name it something
|
Once you've forked `ssh-chat`, go into your shell and create a new Git branch. Name it something
|
||||||
based on what you're adding to the project. Try for simple names like `readme-fix` or `new-themes`,
|
based on what you're adding to the project. Try for simple names like `readme-fix` or `new-themes`,
|
||||||
@ -49,16 +50,19 @@ something short and easy that describes a feature or addition. Then, you check o
|
|||||||
you made.
|
you made.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
git branch my-branch # change my-branch to your desired branch name
|
$ git checkout -b my-branch-name # Make a new branch and switch to it
|
||||||
git checkout my-branch
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you can make your changes. Once you've finished that, you will then have to add these files to be
|
Now you can make your changes. Once you've finished that, you will then have to add these files to be
|
||||||
staged for committing. Once added, we can create a commit message, and push it to your fork repository.
|
staged for committing. Once added, we can create a commit message, and push it to your fork repository.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
git add file.txt # add more files if you've made changes in more places
|
$ git add newfile.txt # Add any new files
|
||||||
git commit -m "Fixed not having a file.txt in the project"
|
$ git commit -m "Fixed not having a file.txt in the project"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Try to keep commit messages [similar to the style the project already uses](https://github.com/shazow/ssh-chat/commits/master).
|
||||||
|
|
||||||
Now the changes are ready to be pushed. Currently, Git doesn't know where to push these changes, since
|
Now the changes are ready to be pushed. Currently, Git doesn't know where to push these changes, since
|
||||||
we're on a different branch. We need to set a remote that we can push these changes to.
|
we're on a different branch. We need to set a remote that we can push these changes to.
|
||||||
|
|
||||||
@ -66,23 +70,38 @@ we're on a different branch. We need to set a remote that we can push these chan
|
|||||||
git remote add myrepo https://github.com/my-username/ssh-chat
|
git remote add myrepo https://github.com/my-username/ssh-chat
|
||||||
git push -u myrepo
|
git push -u myrepo
|
||||||
```
|
```
|
||||||
|
|
||||||
That should push your changes to your repository instead of the `ssh-chat` repository. Now you can
|
That should push your changes to your repository instead of the `ssh-chat` repository. Now you can
|
||||||
create a Pull Request which will compare your changes to the upstream's (original repository) Git, and
|
create a Pull Request which will compare your changes to the upstream's (original repository) Git, and
|
||||||
if the changes are approved by the owner, then they will get merged!
|
if the changes are approved by the owner, then they will get merged!
|
||||||
|
|
||||||
|
|
||||||
## What features are planned for ssh-chat?
|
## What features are planned for ssh-chat?
|
||||||
|
|
||||||
Check the [milestones page](https://github.com/shazow/ssh-chat/milestones) which should have
|
Check the [milestones page](https://github.com/shazow/ssh-chat/milestones) which should have
|
||||||
a list of features planned.
|
a list of features planned.
|
||||||
|
|
||||||
|
|
||||||
## How can I click on URLs posted in chat?
|
## How can I click on URLs posted in chat?
|
||||||
|
|
||||||
Do you have clickable/yankable URL support in your terminal emulator? Depending on your terminal, you
|
Do you have clickable/yankable URL support in your terminal emulator? Depending on your terminal, you
|
||||||
might be able to check the settings to see if it has URL support.
|
might be able to check the settings to see if it has URL support.
|
||||||
|
|
||||||
|
Usually it's ctrl+click or cmd+click.
|
||||||
|
|
||||||
|
|
||||||
## Can I block users from connecting?
|
## Can I block users from connecting?
|
||||||
|
|
||||||
Yes. `ssh-chat` has a whitelisting feature which allows you to take users' public keys and add them to a
|
Yes. `ssh-chat` has a whitelisting feature which allows you to take users' public keys and add them to a
|
||||||
whitelist, so that only they may connect when their public key matches the authorized keys given to `ssh-chat`.
|
whitelist, so that only they may connect when their public key matches the authorized keys given to `ssh-chat`.
|
||||||
|
|
||||||
|
You'll need to get your friends' ssh public keys ahead of time and make a file similar to what you'd do on `~/.ssh/authorized_keys` for your ssh server.
|
||||||
|
|
||||||
|
For example, here is how you'd whitelist so that only @shazow can connect to your server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ curl https://github.com/shazow.keys >> whitelist_keys
|
||||||
|
$ ssh-chat --whitelist=$PWD/whitelist_keys ...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user