Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs folder and some fuse docs. closes #259 #391

Merged
merged 1 commit into from
Feb 2, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ dependencies as well.
* *WARNING: older versions of OSX FUSE (for Mac OS X) can cause kernel panics when mounting!*
We strongly recommend you use the [latest version of OSX FUSE](http://osxfuse.github.io/).
(See https://github.com/jbenet/go-ipfs/issues/177)
* For more details on setting up FUSE (so that you can mount the filesystem), see the docs folder


## Usage
Expand Down
26 changes: 26 additions & 0 deletions docs/fuse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
As a golang project, `go-ipfs` is easily downloaded and installed with `go get github.com/jbenet/go-ipfs`. All data is stored in a leveldb data store in `~/.go-ipfs/datastore`. If, however, you would like to mount the datastore (`ipfs mount /ipfs`) and use it as you would a normal filesystem, you will need to install fuse.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All data is stored in a leveldb data store in~/.go-ipfs/datastore.

Maybe:

All data is stored in a leveldb data store inside $IPFS_DIR (usually ~/.go-ipfs/datastore). (subject to #394)


As a precursor, you will have to create the `/ipfs` and `/ipns` directories explicitly, as they require sudo permissions to create (`sudo mkdir /ipfs; sudo mkdir /ipns`). Then `chown` them so `ipfs` can access them without root permission, eg `sudo chown <username>:<groupname> /ipfs` and same for `/ipns`.

MacOSX (Mountain Lion)
----------------------

It has been discovered that versions of `osxfuse` prior to `2.7.0` will cause a kernel panic. For everyone's sake, please upgrade (latest at time of writing is `2.7.2`). The disk image can be found at https://osxfuse.github.io/. There is also a homebrew formula, if you like, `brew install osxfuse`.

Note that `ipfs` attempts an automatic version check on `osxfuse` to prevent you from shooting yourself in the foot if you have pre `2.7.0`. However, that version check has become unreliable, and may fail even if you are up-to-date. If you are sure about your `osxfuse` version and would like to mount, simply add `return nil` at the top of this function: https://github.com/jbenet/go-ipfs/blob/master/cmd/ipfs/mount_darwin.go#L15. Then reinstall by running `go install` in `$GOPATH/src/github.com/jbenet/go-ipfs/cmd/ipfs`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that version check has become unreliable, and may fail even if you are up-to-date.

We should fix this. It shouldn't ever fail with a correct version. Are you seeing this? (sorry if we talked about this before-- has been a while)


You should be good to go! If you're not, hop on IRC and speak with us, or if you figure something out, add to this wiki!

Linux (Ubuntu 14.04)
--------------------

Install Fuse with `sudo apt-get install fuse`.
Change permissions on the fuse config: `sudo chown <username>:<groupname> /etc/fuse.conf`
(note `<groupname>` should probably be `fuse`)

If the mount command crashes and your mountpoint gets stuck, `sudo umount /ipfs`


Other
-----
If you manage to mount on other systems (or followed an alternative path to one above), please contribute to these docs :D