Skip to content
Snippets Groups Projects
Select Git revision
  • 3e2fa37250e60f8ed7dfa6e60f8f19045d0dcfd9
  • master default protected
  • greenkeeper/webpack-4.10.1
  • greenkeeper/webpack-4.10.0
  • greenkeeper/webpack-4.9.2
  • greenkeeper/promise-polyfill-8.0.0
  • greenkeeper/webpack-4.9.1
  • greenkeeper/webpack-4.9.0
  • greenkeeper/webpack-manifest-plugin-2.0.3
  • greenkeeper/update-to-node-10
  • gh-pages
  • greenkeeper/webpack-4.8.3
  • greenkeeper/webpack-4.8.2
  • greenkeeper/webpack-4.7.0
  • greenkeeper/webpack-manifest-plugin-2.0.2
  • greenkeeper/webpack-manifest-plugin-2.0.1
  • greenkeeper/style-loader-0.21.0
  • greenkeeper/webpack-4.6.0
  • greenkeeper/sass-loader-7.0.1
  • greenkeeper/sass-loader-7.0.0
  • greenkeeper/webpack-manifest-plugin-2.0.0
  • 2.7.3
  • 2.7.2
  • 2.7.1
  • 2.7.0
  • 2.6.6
  • 2.6.5
  • 2.6.4
  • 2.6.3
  • 2.6.2
  • 2.6.1
  • 2.6.0
  • 2.5.5
  • 2.5.4
  • 2.5.3
  • 2.5.2
  • 2.5.1
  • 2.5.0
  • 2.4.0
  • 2.3.0
  • 2.2.6
41 results

spec.js

Blame
  • main.go 1.39 KiB
    package main
    
    import (
    	"context"
    	"database/sql"
    	"git.kuschku.de/justjanne/imghost/shared"
    	"github.com/hibiken/asynq"
    	_ "github.com/lib/pq"
    	"log"
    	"net/http"
    	"os"
    )
    
    func main() {
    	defer shared.ErrorHandler()
    
    	configFile, err := os.Open("config.yaml")
    	if err != nil {
    		log.Fatalf("error opening config file: %s", err.Error())
    	}
    	config := shared.LoadConfigFromFile(configFile)
    
    	db, err := sql.Open(config.Database.Format, config.Database.Url)
    	if err != nil {
    		log.Fatalf("error connecting to database: %s", err.Error())
    	}
    
    	pageContext := PageContext{
    		context.Background(),
    		&config,
    		asynq.NewClient(config.AsynqOpts()),
    		asynq.NewInspector(config.AsynqOpts()),
    		config.UploadTimeoutDuration(),
    		db,
    		http.FileServer(http.Dir(config.TargetFolder)),
    		http.FileServer(http.Dir("assets")),
    	}
    
    	http.Handle("/upload/", pageUpload(pageContext))
    
    	http.Handle("/i/", http.StripPrefix("/i/", pageImageDetail(pageContext)))
    	http.Handle("/a/", http.StripPrefix("/a/", pageAlbumDetail(pageContext)))
    
    	http.Handle("/me/images/", pageImageList(pageContext))
    	http.Handle("/assets/", http.StripPrefix("/assets/", pageContext.AssetServer))
    	http.Handle("/", pageIndex(pageContext))
    
    	http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
    		w.Write([]byte("OK"))
    	})
    
    	if err := http.ListenAndServe(":8080", nil); err != nil {
    		log.Fatalf("error in http server: %s", err.Error())
    	}
    }