Git Product home page Git Product logo

website's Introduction

THIS REPOSITORY IS BEING DEPRECATED

Heads up! On 24 June 2021, this repository will be deprecated and replaced with ipfs/ipfs-website. This repository will not be receiving any updates. It is here for historical purposes.


IPFS Website

build status

Official website for IPFS http://ipfs.io

This project builds out a static site to explain IPFS, ready for deployment on ipfs itself. It uses hugo to glue the html together. It provides an informative, public-facing website. The most important things are the words, concepts and links it presents.

The site content is in content/ directory.

Install

> git clone https://github.com/ipfs/website

Usage

To deploy the site ipfs.io, run:

# Build out the optimised site to ./public, where you can check it locally.
> make

# Add the site to your local ipfs, you can check it via /ipfs/<hash>
> make deploy

# Save your dnsimple api token as auth.token
> cat "<api token here>" > auth.token

# Update the dns record for ipfs.io to point to the new ipfs hash.
> make publish-to-domain

The following commands are available:

make

Build the optimised site to the ./public dir

make serve

Preview the production ready site at http://localhost:1313 (requires hugo on your PATH)

make dev

Start a hot-reloading dev server on http://localhost:1313 (requires hugo on your PATH)

make minify

Optimise all the things!

make deploy

Build the site in the public dir and add to ipfs (requires hugo & ipfs on your PATH)

make publish-to-domain ๐Ÿš€

Update the DNS record for ipfs.io. (requires an auto.token file to be saved in the project root.)

If you'd like to update the dnslink TXT record for another domain, pass DOMAIN=<your domain here> like so:

> make publish-to-domain DOMAIN=tableflip.io

See the Makefile for the full list or run make help in the project root. You can pass the env var DEBUG=true to increase the verbosity of your chosen command.

Latest Blog Posts

The IPFS Starlog list in the Latest section is populated from the IPFS blog, which has a separate build and deploy process. That process includes building an index.json file containing the latest post data in the blog's root directory. Latest posts can be rendered by this project via two mechanisms:

  1. Statically, at build time. The /layouts/partials/latest.html partial contains code (currently commented-out) which GETs index.json from its expected absolute URL and uses the returned data to populate the IPFS Starlog.
  2. Dynamically, via the /js/lib/blog-feed.js script. This script requests the resource at /ipns/blog.ipfs.io/index.json once the page has loaded to avoid any CORS concerns. If successful, the response will be used to overwrite any static content.

Dependencies

  • hugo to build website
  • Node.js and npm for build tools
  • ipfs to deploy changes
  • jq, curl and an auth.token file in the project root containing your dnsimple api token to update the dns

All other dependencies are pulled from npm and the Makefile will run npm install for you because it's nice like that.

Contribute

Please do! Check out the issues, or open a PR!

Check out our notes on contributing for more information on how we work, and about contributing in general. Please be aware that all interactions related to IPFS are subject to the IPFS Code of Conduct.

Small note: If editing the README, please conform to the standard-readme specification.

website's People

Contributors

alanshaw avatar alphactzo7g avatar autonome avatar cwaring avatar daviddias avatar dignifiedquire avatar eelcocramer avatar fritzy avatar hackergrrl avatar him2 avatar hsanjuan avatar jbenet avatar jessicaschilling avatar johnnymatthews avatar kubuxu avatar kyledrake avatar leerspace avatar lidel avatar momack2 avatar mr0grog avatar olizilla avatar richardlitt avatar richsilv avatar sockdrawermoney avatar stebalien avatar terichadbourne avatar victorb avatar whyrusleeping avatar wking avatar wraithgar 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

landing page

I was talking to some people on IRC about a possible redesign of the ipfs.io landing page. I just thought I would open up a discussion about it with some ideas:

  • Have only one video on the landing page that best describes ipfs and its goals, then have other videos on a separate page.
  • A non-technical introduction section for people who may not be fluent in bittorrent, git, etc, or who may not know why redecentralization is important.
  • maybe link to the neocities blog post or borrow some quotes from it

Mainly I think that the landing page should be aimed at people who have are less informed, then there should be another page with technical details, a link to the paper, an introduction to the ipfs application, details for people interesting in contributing, etc.

There's a lot going on the space of redecentralization right now, and I think an amazing landing page would really help differentiate ipfs.

cc: @davidar

Consider including a security statement on https://ipfs.io

While the go-ipfs repo includes a section on Security Issues and https://ipfs.io/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/security-notes exists, https://ipfs.io, https://ipfs.io/docs/install and http://dist.ipfs.io do not seem to contain any mention of security (even ctrl-f "secur" comes up blank).

This is compounded by the fact that the site does not make it obvious (to me) whether IPFS (client and protocols) is considered production-ready yet. The main page includes links to Install IPFS and Install IPFS Alpha, but the Alpha link is below the fold and they both point to https://ipfs.io/docs/install/ which doesn't make the status clear.

The notes at https://ipfs.io/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/security-notes seem sensible and I would suggest linking to them prominently on https://ipfs.io and http://dist.ipfs.io, and possibly including a form of them inline on the installation instructions page.

What sites would you like IPFS to look like?

So, IPFS is going to go through a redesign soon (cf. #54). We would like to field examples of websites which are awesome that we should plan to aim for in our redesign, and to work from // give to the redesigners.

Please suggest cool features and sites you would like us to emulate here!

  • norse-corp.com. This site is gorgeous, and has the right amount of awesome. A bit JS heavy, but it could help give the impression that IPFS is in itself awesome, rather than just saying what it can do for you.
  • keybase.io. Putting the fun back in "security fundamentals".
  • npmjs.org. It is pretty and functional.

Edit superfluous Project page links

  • Linking to 'Install' and 'Getting started' in Documentation in Project is superfluous and can be removed.
  • The Code and Community links to IPFS descriptions are inconsistent in regards to where the spec is.

videos don't show up

when I visit http://ipfs.io/#alpha-demo with firefox I only see the headline and the button, not the video.

doing same with chromium, it works. so it might be some firefox plugin or settings I use.

but: watching the videos on youtube directly also works in FF for me, so maybe there should be direct links to YT on the website also.

Command Reference: Undocumented arguments

I noticed that the "pin" argument (ipfs/kubo#1931) to add is undocumented in the command reference, I was going to make a pull request and add it in but it seems that the markdown file is generated somehow:

generated on 2016-02-23 14:41:10.728008

If that's the case it seems like whatever generates it may be missing all the possible arguments for commands.

Rename downloadable directories to avoid confusion

When downloading an IPFS installation folder from the website, a folder called ipfs has a file called ipfs in it. This can cause mild confusion for users who move the entire folder to their bin, instead of just the ipfs executable. Renaming the top-level folders to ipfs-install, ipfs-download, or something similar would make sure this is never a friction point. See ipfs/ipfs#88 (comment).

This may be a small idea, but in case of mass-adoption it might be a good move just to make this clear.

Mac Brew instructions

For the "From Source" section of https://github.com/ipfs/website/blob/gh-pages/docs/install/index.html

On the Mac I recommend Homebrew to install go over the method outlined in your instructions.

The steps for installing IPFS using Mac Homebrew are:

  • Install Homebrew if you have not already done so.
  • If you don't have Git already installed, enter brew install git
  • If you don't have Go already installed, enter
    • brew install go
      *ย mkdir ~/go
    • cd ~/go
    • export GOPATH=$HOME/projects/go (you may want to add this to your "~/bash_profile)
    • export PATH=$PATH:$GOPATH/bin (you may want to add this to your "~/bash_profile)
  • go get -u github.com/ipfs/go-ipfs/cmd/ipfs

-- Christopher Allen

P.S. I highly recommend that you create a brew formula/recipe for IPFS as per https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md and register it with brew or one of the taps. Then you can install a binary file and have go and git as dependencies.

Redesign Media Page

This is a visibility issue for ideas expressed in the now closed #71.

@jbenet:

in terms of layout, we can start with list, but ideally would love to have something like this later on.
also, each of the items could be a link to a post on our blog once it's available (which could embed the relevant videos and/or link out to relevant things)
68747470733a2f2f7777772e64727570616c2e6f72672f66696c65732f70726f6a6563742d696d616765732f7069637475726525323074696d656c696e652e706e67

Windows and Getting Started...bugs?

I'm doing the insane thing and trying to run go-ipfs on Windows 10! It's actually gone quite well. ๐Ÿ˜„

However, there's some weirdness.

I've added some annotations via hypothes.is that highlight (heh) the issues:
https://via.hypothes.is/https://ipfs.io/docs/getting-started/

Summary:

  • the /ipfs/ path throws an error in ipfs cat commands--removing it fixes it
  • nothing seems to work without running the daemon
  • ipfs add doesn't seem to receive the echo output properly

The environment is bash (via msysgit) running in ConsoleZ. Most things just work like they do on a *nix, but there's some possibility (especially with the add error), that something's borked with bash on the Windows.

Thanks!

Move the install button to be "above the fold"

Basically put an "Install IPFS" button in the header.

From the irc channel:

<jbenet> inconshreveable: thoughts on making the "read the paper" button smaller? the original goal of this site was to "look at the demo -> install"
<jbenet> the big paragraph may confuse/turn away people. another option is to put this paragraph below the alpha demo, or on the project page
<inconshreveable> Yeah, maybe below the alpha demo?
<jbenet> yeah +1 
<inconshreveable> or turn read more into a regular hyperlink
<inconshreveable> as part of the paragraph text
<inconshreveable> actually, jbenet. you should get your "Install IPFS alpha" above the fold
<inconshreveable> like with the pretty space background
<jbenet> inconsreveable yeah! great point!! maybe the same button but with no background + white border?
<inconshreveable> yep
<inconshreveable> and maybe nuke 'alpha' from the CTA
<inconshreveable> just
<inconshreveable> Install IPFS
<jbenet> yep agreed. i like how hashpipe looked: jbenet.github.io/hashpipe/
<inconshreveable> obviously keep the button with the video as well

enable DANE/TLSA

is there a possibility of enabling DANE on the domain, so dns responses are secured (especially for the dnslink entry)?

PS: and also enable the DNSSEC check in ipfs.

test hash before publishing it

We should have a test on the publish-to-dns makefile target: we should check the hash we'll use is correct, by testing some well known things like an image.

i say this because i hosed the website by publishing the root (below /ipfs.io) instead of the ipfs.io dir and for a while broke the site. (totally my fault, should've verified the hash before using it, but this could be a test) The TTL is very low now, so this wont be a big deal in the future. but still avoidable.

Set up CI

We need to set up continuous integration builds on this repo. At this moment all it needs to do is check that pull requests build successfully and don't contain dead links (#13)

Left to do:

  • setup .travis.yml
  • setup circle.yml

$GOPATH

The instructions in https://github.com/ipfs/website/tree/gh-pages/docs/install/index.html for installation by using go get will confuse many new users to Go as the go installer does not set the $GOPATH property by default, and go get does not work without it.

I recommend that you add the command
if [ ! $GOPATH ]; then export GOPATH=$HOME/go; export PATH=$PATH:$GOPATH/bin; fi the command go get -u github.com/ipfs/go-ipfs/cmd/ipfs and/or tell the user to add this to their shell profile (~/.bash_profile typically).

This will make live demos like the one that Juan did at BlockchainU more effective.

-- Christopher Allen

Issue with nunjucks reading endmarkdown block tag

I'm getting this issue, not sure why. I've npm installed, so this shouldn't be a problem.

17:28 ~/src/ipfs-website ๐Ÿ•  make
./build.js
{ [Template render error: unknown block tag: endmarkdown]
  name: 'Template render error',
  message: 'unknown block tag: endmarkdown',
  lineno: 2,
  colno: 2,
  firstUpdate: true,
  Update: [Function] }

/Users/richard/src/ipfs-website/build.js:46
      throw err;
      ^
Template render error: unknown block tag: endmarkdown
    at Error.exports.TemplateError (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/lib.js:51:19)
    at Object.extend.fail (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/parser.js:64:15)
    at Object.extend.parseStatement (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/parser.js:544:18)
    at Object.extend.parseNodes (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/parser.js:1151:30)
    at Object.extend.parseAsRoot (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/parser.js:1177:42)
    at Object.module.exports.parse (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/parser.js:1199:18)
    at Object.module.exports.compile (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/compiler.js:1118:48)
    at Obj.extend._compile (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/environment.js:444:35)
    at Obj.extend.compile (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/environment.js:433:18)
    at null.<anonymous> (/Users/richard/src/ipfs-website/node_modules/nunjucks/src/environment.js:378:22)
make: *** [build] Error 1

Link directly to the index.html in directories

Linking directly to the index.html will make it so that the website will work when loaded directly from the filesystem. It's fine now that it's loaded exclusively through a webserver, but when we start distributing the site through ipfs this will be important to do.

Updating website in github publishes changes to IPFS && to ipfs.io

Edit: Original title of this issue was: Idea: Publishing website to IPFS auto-publishes to github pages

Background: I've been having fun setting up continuous deployment to github pages recently for a few of my own sites. For example, when anyone updates the site source on github for dstack.org, CI notices the changes, builds the site from source, and pushes the resulting pages to gh-pages.

We could certainly do the same or similar for ipfs.io. But maybe we could do something much cooler, which could serve as an example to boot.

The basic flow I have in mind is:

  • publish the ipfs.io site at an ipns address
  • watch that ipns address for changes (maybe now using a cronjob, later using a subscribe mechanism -- if I understand the current state of things)
  • when there are changes, fetch the latest code from IPFS, and push it to github pages

What would all this get us? A fantastic example of publishing content to the "permanent web" first, then mirroring it to github pages, a lightning fast, highly scalable free hosting system, which also hooks into DNS with custom domain names. That is to say, it's a bridge, to allow pioneers who are publishing on IPFS to mirror their work to the "old web".

Caveat: I'm still an IPFS noob, tho enthusiastic. If this sounds interesting, I'd be happy to throw a bit of development at it. Feedback and upgrades welcome.

make broken

root@*****:~/website# make
./build.js
make: *** [build] Error 1

auto deploy?

would be nice to have a deploy hook that updated the DNS record or something on successful merge

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.