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.

51 lines
1.1 KiB

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