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