Skip to content

Commit

Permalink
v1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
anthonybudd committed Jan 6, 2020
0 parents commit c9c847a
Show file tree
Hide file tree
Showing 46 changed files with 12,757 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
module.exports = {
env: {
browser: true,
es6: true
},
extends: [
'plugin:vue/essential',
'standard'
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly'
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module'
},
plugins: [
'vue'
],
rules: {
'no-multiple-empty-lines': 'off',
'no-trailing-spaces': 'off',
'no-multi-spaces': 'off',
'padded-blocks': 'off',
'comma-dangle': 'off',
'no-console': 'off',
'no-undef': 'off',
'no-new': 'off',
'indent': ['error', 4]
}
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/
ipfs/.ipfs/
build/
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.format.enabled": false
}
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM node:latest

COPY . /app

WORKDIR /app

RUN npm install

ENTRYPOINT [ "node", "/app/server.js" ]
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<p align="center">
<img width="192" src="https://ideea.io/static/img/vipfs-logo.svg" alt="VIPFS">
</p>

---

### [VIPFS](https://ideea.io/vipfs) &nbsp;&nbsp;|&nbsp;&nbsp; [Tutorial](https://ideea.io/vipfs/getting-started-tutorial) &nbsp;&nbsp;|&nbsp;&nbsp; [YouTube Tutorial](https://www.youtube.com/watch?v=Fq7h-cSN9i8) &nbsp;&nbsp;|&nbsp;&nbsp; [Docs](https://github.com/Ideea-inc/vipfs/tree/master/docs) &nbsp;&nbsp;|&nbsp;&nbsp; [Ideea.io](https://ideea.io) &nbsp;&nbsp;|&nbsp;&nbsp; [Hire Me](https://ideea.io/about#hire-me)

---

# VIPFS
VIPFS is a simple framework for creating perminant apps, blogs and websites that cannot be taken offline, blocked or censored. The application is built with Vue.js and comes with useful templates and pre-integrated with Bootstrap, FontAwesome, Video.js, Vuex and VueRouter. Simply clone, build and run `npm run publish` to deploy it on IPFS and make it perminatly accesable to the world.


## Getting Started
```sh
$ git clone git@github.com:Ideea-inc/vipfs.git
$ cd vipfs
$ npm install
$ npm run build
$ docker-compose up
$ npm run publish // returns 'Qmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
$ open http://localhost:8080/ipns/Qmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$ open https://gateway.ipfs.io/ipns/Qmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

## Video Tutorial
[![VIPFS Video Tutorial](https://ideea.io/static/img/vipfs-youtube-embed.png)](https://www.youtube.com/watch?v=Fq7h-cSN9i8)


## Motivation
The golden age of the internet is over. Gone are the days of free speech, edgy-content and free open discussion. The once young, cool tech startups have grown up into omnipotent dictators. Transgress today’s PC mono-culture by stating a scientific fact or open support of a democratically elected president, and these tyrants will [conspire to erase you from the digital world.](https://www.dailywire.com/news/facebook-youtube-and-apple-ban-alex-jones-heres-ben-shapiro)

But just as one age has passed a new one is just beginning. Distributed technology and crypto technology has matured dramatically over the past 5 years. The technology has proved it’s effectiveness and the technical barriers to entry have never been lower. That’s why I decided to combine some of these technologies to create VIPFS. I created this framework to make it as simple as possible for anyone with only minimal technical ability to create an unstoppable decentralised application that is impossible to take offline, block or censor.

Deplatforming is modern-day book burning. Code is free speech.


## Etherum Payments with MetaMask
The [payment template](/src/components/payment.vue) is an example of how you can handle Etherum payments in your VIPFS app using MetaMask. You can then use the method `this.$root.createRequestTransaction()` in your Vue component to prompt the user into sending an Ethereum transaction directly from their browser to your Ethereum account. You can find the code for this template in `src/components/payment.vue`, you can easily modify this code to make a fully decentralised crypto-based e-commerce store.


## Templates
VIPFS comes with a few templates to demonstre functionaiilit. You can eialy modiklfy these temaples to usity your soevcif needss wheeth theat be video hosting, file shaunr or e-commerce.

- [Bio](/src/components/bio.vue)
- [Post](/src/components/post.vue)
- [Video](/src/components/video.vue)
- [Gallery](/src/components/gallery.vue)
- [Payment](/src/components/payment.vue)
25 changes: 25 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
version: "3"

services:
app:
build: .
entrypoint: "node /app/server.js"
container_name: app
restart: always
volumes:
- .:/app
ports:
- "8000:8000"

ipfs:
build:
context: ./ipfs
container_name: ipfs
restart: always
ports:
- "8080:8080"
- "4001:4001"
- "5001:5001"
volumes:
- ./ipfs/.ipfs:/data/ipfs
- ./build:/app
8 changes: 8 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# VIPFS Docs

These are the docs for VIPFS.

More Documentation is on the way, [Contact Me](https://ideea.io/about) if you have any specific issues.

# Contents
- [Installation](/docs/installation.md)
29 changes: 29 additions & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Installation

First, clone the repository and then cd into the project

```sh
$ git clone git@github.com:Ideea-inc/vipfs.git
$ cd vipfs
```

Next, install the required node packages by running
```sh
$ npm install
```
Finally, run the build command to compile the project.
```sh
$ npm run build
```

Now you should have a new directory called `build` in the root of the vipfs project, this is where all of the project’s compiled HTML, JS and CSS is stored.

## Development Server
Once you have successfully compiled the project, you will need to set-up the local development server so you can see your project in a browser and deploy it to IPFS. Run the command below to start the Docker containers (see docker-compose.yml)

```sh
$ docker-compose up
```
The first time you run this command it may take a while to download and build the container images. Once the containers are built, you should be able to see two running containers named app and ipfs when you run the command docker ps

To confirm you have set everything up correctly, you should be able to goto http://localhost:8000 and see the default VIPFS welcome screen.
4 changes: 4 additions & 0 deletions ipfs/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM ipfs/go-ipfs

RUN mkdir /scripts
COPY ./publish /scripts
5 changes: 5 additions & 0 deletions ipfs/publish
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

echo "Publishing..."

ipfs add -r -Q /app | ipfs name publish -Q
5 changes: 5 additions & 0 deletions mix-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"/build/app.js": "/build/app.js",
"/build/app.css": "/build/app.css",
"/build/index.html": "/build/index.html"
}
Loading

0 comments on commit c9c847a

Please sign in to comment.