Giter VIP home page Giter VIP logo

flareup's Introduction

flareup logo

Self-hosted and Easy-to-deploy Cloudflare based Dynamic DNS service for router

Contents

Features

  • Easy-to-use heroku one click deploy
  • Support for multiple domains
  • Flexible in terms deploying and installing options
  • Single multi-arch docker image
  • Multi platform binaries

Environment Variables

To run this project, you will need to add the following environment variables to your .env file (or) set them accordingly for use with docker or with your os

USERNAME - Username for flareup service

PASSWORD - Password for flareup service

CF_API_TOKEN - Cloudflare api token with edit permission for required zones i.e domains

PORT (Optional) - By default flareup listen's on port 5335

DOMAINS - Comma(,) seperated domains e.g

example1.domain.tld , example2.domain.tld

PROXIED (Optional, Default:false) - Proxy dns service through cloudflare service

(back to top)

Installation

  • FlareUp can be installed and used in the following ways

Heroku

  • Click Deploy and its pretty self explanatory.

(back to top)

Docker

  1. Docker Run

    1. To automatically install & run FlareUp, simply run:
      docker run -d \
      --name=flareup \
      -e USERNAME=<username> \
      -e PASSWORD=<password> \
      -e CF_API_TOKEN=<cloudflare api token> \
      -e DOMAINS=<comma(,) seperated domain> \
      -e PROXIED=false \
      -p 5335:5335 \
      --restart unless-stopped \
      coolfool/flareup
      
    2. Logs can be found using
      docker container logs flareup
      
  2. Docker Compose

    1. Download docker-compose.yml
    2. Open the file in a text editor and fill the environment variables
    3. Execute the following command in the same directory
      docker-compose up -d
      
    4. FlareUp should start listening on 5335 or the port specified in env vars.

(back to top)

Standalone Binaries

  1. Download the binary for your platform from Releases section
  2. Extract the archive
  3. Run the binary according to your os
    • For linux
      ./flareup 
      

(back to top)

Router Setup

  • Important Notes before setup:
    1. The flareup update url is https://example.com/update
    2. If the router insists on having a hostname for update you can use https://example.com/update?hostname= as url and all.flareup as hostname
  1. The DynamicDNS server will be the hostname where the service is hosted eg. example.com

  2. Fill the username and password as you entered in environment variable

  3. Enter the hostname as all.flareup if required

  4. The update urls are as follows:

    1. https://example.com/update without hostname
    2. https://example.com/update?hostname=all.flareup with hostname
  5. Save settings and the service should start updating cloudflare dns

(back to top)

Build and Run Locally

  1. Clone the project
  git clone https://github.com/CoolFool/flareup
  1. Go to the project directory
  cd flareup
  1. Install dependencies
  go build -o flareup ./cmd/flareup
  1. Create .env file according to the variables mentioned in Environment Variables

  2. Start the service according to your platform

  • For linux
    ./flareup 

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Authors

(back to top)

License

MIT

(back to top)

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.