2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  express  =  require ( 'express' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  path  =  require ( 'path' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  favicon  =  require ( 'serve-favicon' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  cookieParser  =  require ( 'cookie-parser' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  bodyParser  =  require ( 'body-parser' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  helmet  =  require ( 'helmet' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  session  =  require ( 'express-session' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  FileStore  =  require ( 'session-file-store' ) ( session ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-23 22:36:18 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  os  =  require ( 'os' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  log  =  require ( './services/log' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:10:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  indexRoute  =  require ( './routes/index' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  loginRoute  =  require ( './routes/login' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  logoutRoute  =  require ( './routes/logout' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  migrationRoute  =  require ( './routes/migration' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// API routes
  
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:31:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  treeApiRoute  =  require ( './routes/api/tree' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  notesApiRoute  =  require ( './routes/api/notes' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  notesMoveApiRoute  =  require ( './routes/api/notes_move' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  auditApiRoute  =  require ( './routes/api/audit' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  noteHistoryApiRoute  =  require ( './routes/api/note_history' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  recentChangesApiRoute  =  require ( './routes/api/recent_changes' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  settingsApiRoute  =  require ( './routes/api/settings' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  passwordApiRoute  =  require ( './routes/api/password' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  migrationApiRoute  =  require ( './routes/api/migration' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:58:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  syncApiRoute  =  require ( './routes/api/sync' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:30:23 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  dataDir  =  require ( './services/data_dir' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:38:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  sessionSecret  =  require ( './services/session_secret' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  db  =  require ( 'sqlite' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:47:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  config  =  require ( './services/config' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:30:23 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								db . open ( dataDir . DOCUMENT _PATH ,  {  Promise  } ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  app  =  express ( ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// view engine setup
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . set ( 'views' ,  path . join ( _ _dirname ,  'views' ) ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . set ( 'view engine' ,  'ejs' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( helmet ( ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( ( req ,  res ,  next )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    log . request ( req ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    next ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-26 23:21:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( bodyParser . json ( { limit :  '50mb' } ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								app . use ( bodyParser . urlencoded ( { extended :  false } ) ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( cookieParser ( ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:47:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( express . static ( path . join ( _ _dirname ,  'public' ) ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( session ( {  
						 
					
						
							
								
									
										
										
										
											2017-10-23 23:38:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    secret :  sessionSecret , 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    resave :  false ,  // true forces the session to be saved back to the session store, even if the session was never modified during the request.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    saveUninitialized :  false ,  // true forces a session that is "uninitialized" to be saved to the store. A session is uninitialized when it is new but not modified.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    cookie :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //    path: "/",
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        httpOnly :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        maxAge :   1800000 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    store :  new  FileStore ( { 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-16 19:14:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ttl :  30  *  24  *  3600 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-23 22:36:18 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        path :  os . tmpdir ( )  +  '/trilium-sessions' 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:07:34 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-21 00:19:13 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( favicon ( _ _dirname  +  '/public/images/app-icons/favicon.ico' ) ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:10:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( '/' ,  indexRoute ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 16:32:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( '/login' ,  loginRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/logout' ,  logoutRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/migration' ,  migrationRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 17:31:49 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( '/api/tree' ,  treeApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/notes' ,  notesApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/notes' ,  notesMoveApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/audit' ,  auditApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/notes-history' ,  noteHistoryApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/recent-changes' ,  recentChangesApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/settings' ,  settingsApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/password' ,  passwordApiRoute ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								app . use ( '/api/migration' ,  migrationApiRoute ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:58:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( '/api/sync' ,  syncApiRoute ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// catch 404 and forward to error handler
  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( ( req ,  res ,  next )  =>  {  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    const  err  =  new  Error ( 'Not Found' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    err . status  =  404 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    next ( err ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// error handler
  
						 
					
						
							
								
									
										
										
										
											2017-10-24 22:04:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								app . use ( ( err ,  req ,  res ,  next )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    log . error ( err . message ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-28 12:23:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// triggers sync timer
  
						 
					
						
							
								
									
										
										
										
											2017-10-21 21:10:33 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require ( './services/sync' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-28 12:23:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// triggers backup timer
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								require ( './services/backup' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								module . exports  =  app ;