codingfriend1 / Feathers-Vue

A boiler plate template using Feathers with Email Verification, Vue 2 with Server Side Rendering, stylus, scss, jade, babel, webpack, ES 6-8, login form, user authorization, and SEO
MIT License
197 stars 48 forks source link
authentication authorization bootstrap docker email-verification es6 es7 express feathersjs font-awesome jade jasmine lodash mocha mongoose nginx scss stylus vuejs2 webpack

Feathers-Vue

A Vue 2 and FeathersJS 2 fullstack app with authentication, email verification, and email support."

About

This project uses Feathers. An open source web framework for building modern real-time applications and Vue 2 with Server Side Rendering.

This project is not finished but if you are can be ready to use if you are content with what it offers.

Features

Getting Started

Getting up and running is as easy as 1, 2, 3, 4.

There are multiple ways to start/develop the app.

Develop with docker

Don't install node_modules locally

  1. Create a environment-dev.env and environment.env file to hold your environment variables. These files are ignored by git. You'll want a DATABASE_URL and you gmail info for email verification

    DATABASE_URL=mongodb://db/feathersvuedevelopment
    COMPLAINT_EMAIL=your_email@gmail.com
    GMAIL=your_email@gmail.com
    GMAIL_PASSWORD=your_pass_password

    See How to set an app password

  2. Run npm start

    npm start
  3. To see production build locally

    npm run build-qa
    npm run qa
  4. To switch back to development use

    npm run build-dev
    npm start

Switching contexts between production and development requires a full docker build with no cache.

Develop without docker

  1. Make sure you have NodeJS and npm installed.

  2. Install your dependencies

    cd path/to/Feathers-Vue; npm install
  3. Start your app locally

    mongod
    npm run dev
  4. In production run

    npm run build
    npm run production

If you want emails to work using gmail add the following environment variables

  export GMAIL=yourgmailaccount@gmail.com
  export GMAIL_PASS=yourpassword or app-password

See How to set an app password

Testing

Simply run npm test and all your tests in the test/ directory to run server side unit test or run npm run integration to run client side side tests.

Scaffolding

Feathers has a powerful command line interface. Here are a few things it can do:

$ npm install -g feathers-cli             # Install Feathers CLI

$ feathers generate service               # Generate a new Service
$ feathers generate hook                  # Generate a new Hook
$ feathers generate model                 # Generate a new Model
$ feathers help                           # Show all commands

Help

For more information on all the things you can do with Feathers visit docs.feathersjs.com.

Looking for mobile?

I'm working on a cordova starter with feathers 2, Vue 2, and Framework 7. Visit the cordova branch of this repo.

Cordova Branch

Gitlab Auto Deployment

  1. Create a digitalocean instance from using the one-click docker instance.

  2. ssh into the instance and run

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get -y install python-pip
    sudo pip install docker-compose
  3. Edit sshd_config

    nano /etc/ssh/sshd_config
  4. At the bottom of the file change PasswordAuthentication

    PasswordAuthentication yes
  5. Run reload ssh

  6. Set the secret environment variables in gitlab

    DATABASE_URL=mongodb://db/feathersvue
    DEPLOYMENT_SERVER_IP=your_ip_address
    DEPLOYMENT_SERVER_PASS=your_user_password
    DEPLOYMENT_SERVER_USER=your_server_user
  7. Update docker-compose.autodeploy.yml web image to point to your hosted image.

  8. Update gitlab-ci.yml in the only sections to only run on the branches you want to deploy from.

  9. Push changes in git to gitlab.

Breaking Changes

License

Copyright (c) 2016

Licensed under the MIT license.