Backpulse's core. Backpulse is an API Based CMS. Build you own website without worrying about the content administration system.

Overview

forthebadge forthebadge

Donate Donate Donate

Backpulse

Backpulse core

Backpulse is an API Based / Headless CMS.
Your site's content is accessible directly via our RESTful API, on any web framework and any device.

Installation

With a correctly configured Go toolchain:

go get github.com/backpulse/core

Build&Run from source

With a correctly configured(go version >=go1.11) Go toolchain:

git clone https://github.com/backpulse/core
cd core
make build
./backpulse

Docker Build&Run

docker build -t <your-backpulse-tag> .
docker run -d --link <mongodb-container>:mongodb <your-backpulse-tag>

or docker run in custom environment

docker run -d \
           --link <mongodb-container>:mongodb \
           --env MONGODB_URI=mongodb://mongodb:27017 \
           --env DATABASE=backpulse \
           <your-backpulse-tag>

Usage

First, you need to create a config.json using the config.json.template file.

  • URI : MongoDB server address (mongodb://...)
  • Database : MongoDB database name
  • Secret : A secret key to encrypt JWT
  • GmailAddress : A gmail address if you wish to send confirmation emails
  • GmailPassword : The password associated with the gmail address obviously
  • StripeKey : Your Stripe Key if you wish to integrate Stripe
  • BucketName : Your Google Cloud Storage Bucket's name to store user files (images, binaries, plain text...)

You can also pass all these variables as environment variables:

  • MONGODB_URI
  • DATABASE
  • SECRET
  • GMAIL_ADDRESS
  • GMAIL_PASSWORD
  • STRIPE_KEY
  • BUCKET_NAME

Note: If a config.json file is found, it will override environment variables.

Then, you need to get your Google Service Account Key:

  • Go to this page.
  • Create a new account with the Project -> Owner role.
  • Download your private key as JSON.
  • Move it to the root of this project.
  • Rename it google_credentials.json.

You can also pass the content of this json file as an environment variable:

GOOGLE_APPLICATION_CREDENTIALS = {"type": "service_account", "project_id": "projectID", ...}

You're all set to run Backpulse!

go build -o backpulse && backpulse

Note: By default Backpulse runs on port 8000, but can be overridden with the PORT environment variable.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT © Aurèle Oulès

You might also like...
Ditto is a CLI testing tool that helps you verify if multiple HTTP endpoints have the same outputs.

Ditto is a CLI testing tool that helps you verify if multiple HTTP endpoints have the same outputs.

CLI tool to mock TCP connections. You can use it with Detox, Cypress or any other framework to automatically mock your backend or database.

Falso It is a CLI that allows you to mock requests/responses between you and any server without any configuration or previous knowledge about how it w

A Comprehensive Coverage Testing System for The Go Programming Language
A Comprehensive Coverage Testing System for The Go Programming Language

goc 中文页 | goc is a comprehensive coverage testing system for The Go Programming Language, especially for some complex scenarios, like system testing c

Trade Matching / Transaction System Load Testing Solution

Load Generation System for Trade Matching Systems Operation Users select one of the following options from thew Test Management Portal: Generate a new

go-wrk - a HTTP benchmarking tool based in spirit on the excellent wrk tool (https://github.com/wg/wrk)

go-wrk - an HTTP benchmarking tool go-wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CP

A bytecode-based virtual machine to implement scripting/filtering support in your golang project.

eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service

A clipboard-based mocking framework for Go that gets out of your way.
A clipboard-based mocking framework for Go that gets out of your way.

A clipboard-based mocking framework for Go that gets out of your way. This tool has been built with inspiration lovingly taken from Moq, and fuelled b

Aquatone is a tool for visual inspection of websites across a large amount of hosts and is convenient for quickly gaining an overview of HTTP-based attack surface.

Aquatone is a tool for visual inspection of websites across a large amount of hosts and is convenient for quickly gaining an overview of HTTP-based attack surface.

 📡 mock is a simple, cross-platform, cli app to simulate HTTP-based APIs.
📡 mock is a simple, cross-platform, cli app to simulate HTTP-based APIs.

mock 📡 mock is a simple, cross-platform, cli app to simulate HTTP-based APIs. About mock Mock allows you to spin up a local http server based of a .m

Comments
  • optimized Dockerfile to use docker mutlti-stage build mechanism

    optimized Dockerfile to use docker mutlti-stage build mechanism

    • docker multi-stage build mechanism can build a smallest image then direct build
    • Dockerfile to support multi-stage build since docker-ce version >=v17.06
    opened by alimy 2
  • Please add support for GraphQL

    Please add support for GraphQL

    there is on reliable CMS that can compete with any headless cms of node.js like Strapi. if sone contributes and GraphQL then it will be a step close to CMS like Strapi.

    can core support Existing MongoDB data? or does it require a new collection, document?

    opened by gigabyteservice 1
  • use godotenv load env file into ENV as config

    use godotenv load env file into ENV as config

    • use godotenv load env file info ENV, so we can use os.Getenv(...) get all the app's config.
    • use godotenv load env file into ENV but not overload value that had present in ENV,this is very friendly for docker environment.We can define default app's config in .env file and load by godotenv, then run app by docker passed custom environment value use cmd like docker run ... --env ...
    • now config passer priority: config.json > ENV(system environment value) > .env file(load by godotenv)
    • what about use .env as single config file for app? I think godotenv load .env file to ge all config is all enough that we need.
    opened by alimy 0
  • use go mod as pkg manager

    use go mod as pkg manager

    • go support official pkg manage sine go1.11 and now newest go version is go1.12.2 support go mod well so use go mod as pkg manager
    • add Makefile to auto build project
    • use s6-supervision as docker container init process to manager daemon service
    opened by alimy 0
Owner
Aurèle Oulès
i build things on the internet
Aurèle Oulès
Create your own blazing fast mock server with just a JSON file!

Gmocker Run a blazing fast mock server in just seconds! ?? All you need is to make a json file that contains path and response mapping. See an example

Ananto 53 Dec 21, 2022
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻

Gnomock – tests without mocks ??️ Spin up entire dependency stack ?? Setup initial dependency state – easily! ?? Test against actual, close to product

Yury Fedorov 1k Dec 29, 2022
Lightweight selfhosted Firefox Send alternative without public upload

Gokapi Available for: Bare Metal Docker About Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days. It

Marc Ole Bulling 500 Jan 5, 2023
How we can run unit tests in parallel mode with failpoint injection taking effect and without injection race

This is a simple demo to show how we can run unit tests in parallel mode with failpoint injection taking effect and without injection race. The basic

amyangfei 1 Oct 31, 2021
A Master list of Go Programming Tutorials, their write-ups, their source code and their current build status!

TutorialEdge TutorialEdge.net Go Tutorials ??‍?? ??‍?? Welcome to the TutorialEdge Go Repository! The goal of this repo is to be able to keep track of

TutorialEdge 287 Dec 18, 2022
Markdown based document-driven RESTful API testing.

silk Markdown based document-driven web API testing. Write nice looking Markdown documentation (like this), and then run it using the silk command Sim

Mat Ryer 934 Dec 18, 2022
Package has tool to generate workload for vegeta based kube-api stress tests.

Package has tool to generate workload for vegeta based kube-api stress tests.

Mikhail Sakhnov 0 Nov 22, 2021
Simple mock program to set charging rate of a battery instance based on the national grid intensity api

Charger Simple mock program to set charging rate of a battery instance based on the national grid intensity api. Steps to get up and running I have cr

Taj 0 Nov 16, 2021
ESME is a go library that allows you to mock a RESTful service by defining the configuration in json format

ESME is a go library that allows you to mock a RESTful service by defining the configuration in json format. This service can then simply be consumed by any client to get the expected response.

Sumit Tokkar 3 Mar 2, 2021
Testcoverage analyzis in you terminal.

test coverage analysis in your terminal

Kjell Kvinge 23 Aug 26, 2022