arnaucube
arnaucube/decentralized-blogging-platformPublic Self-hosted repository
decentralized-blogging-platform/main.go
main.goRaw
 1package main
 2
 3import (
 4	"fmt"
 5	"log"
 6	"net/http"
 7
 8	"github.com/fatih/color"
 9	"github.com/gorilla/handlers"
10	mgo "gopkg.in/mgo.v2"
11)
12
13const keysDir = "keys"
14const keysize = 2048
15const hashize = 1536
16
17var userCollection *mgo.Collection
18
19func main() {
20	color.Blue("Starting ipfs-ai-models-market")
21
22	readConfig("config.json")
23	fmt.Println(config)
24
25	initializeToken()
26
27	//mongodb
28	session, err := getSession()
29	check(err)
30	userCollection = getCollection(session, "users")
31
32	//run thw webserver
33	go GUI()
34
35	//run API
36	log.Println("api server running")
37	log.Print("port: ")
38	log.Println(config.APIPort)
39	router := NewRouter()
40	headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
41	originsOk := handlers.AllowedOrigins([]string{"*"})
42	methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
43	log.Fatal(http.ListenAndServe(":"+config.APIPort, handlers.CORS(originsOk, headersOk, methodsOk)(router)))
44}
45
46func GUI() {
47	//here, run webserver
48	log.Println("webserver in port " + config.WebPort)
49	http.Handle("/", http.FileServer(http.Dir("./webapp")))
50	http.ListenAndServe(":"+config.WebPort, nil)
51}