You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.4 KiB

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