2016-07-10 18:41:49 +02:00
/ *
2020-10-20 13:46:23 +02:00
* T h i s f i l e m u s t b e v a l i d J S O N . B u t c o m m e n t s a r e a l l o w e d
*
* P l e a s e e d i t s e t t i n g s . j s o n , n o t s e t t i n g s . j s o n . t e m p l a t e
*
* P l e a s e n o t e t h a t s t a r t i n g f r o m E t h e r p a d 1.6 . 0 y o u c a n s t o r e D B c r e d e n t i a l s i n
* a s e p a r a t e f i l e ( c r e d e n t i a l s . j s o n ) .
*
*
* E N V I R O N M E N T V A R I A B L E S U B S T I T U T I O N
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
*
* A l l t h e c o n f i g u r a t i o n v a l u e s c a n b e r e a d f r o m e n v i r o n m e n t v a r i a b l e s u s i n g t h e
* s y n t a x "${ENV_VAR}" o r "${ENV_VAR:default_value}" .
*
* T h i s i s u s e f u l , f o r e x a m p l e , w h e n r u n n i n g i n a D o c k e r c o n t a i n e r .
*
2021-11-20 23:11:48 +01:00
* D E T A I L E D R U L E S :
* - I f t h e e n v i r o n m e n t v a r i a b l e i s s e t t o t h e s t r i n g "true" o r "false" , t h e
* v a l u e b e c o m e s B o o l e a n true o r false .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s s e t t o t h e s t r i n g "null" , t h e v a l u e
* b e c o m e s null .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s s e t t o t h e s t r i n g "undefined" , t h e s e t t i n g
* i s r e m o v e d e n t i r e l y , e x c e p t w h e n u s e d a s t h e m e m b e r o f a n a r r a y i n w h i c h
* c a s e i t b e c o m e s null .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s s e t t o a s t r i n g r e p r e s e n t a t i o n o f a f i n i t e
* n u m b e r , t h e s t r i n g i s c o n v e r t e d t o t h a t n u m b e r .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s s e t t o a n y o t h e r s t r i n g , i n c l u d i n g t h e
* e m p t y s t r i n g , t h e v a l u e i s t h a t s t r i n g .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s u n s e t a n d a d e f a u l t v a l u e i s p r o v i d e d , t h e
* v a l u e i s a s i f t h e e n v i r o n m e n t v a r i a b l e w a s s e t t o t h e p r o v i d e d d e f a u l t :
* - "${UNSET_VAR:}" b e c o m e s t h e e m p t y s t r i n g .
* - "${UNSET_VAR:foo}" b e c o m e s t h e s t r i n g "foo" .
* - "${UNSET_VAR:true}" a n d "${UNSET_VAR:false}" b e c o m e true a n d false .
* - "${UNSET_VAR:null}" b e c o m e s null .
* - "${UNSET_VAR:undefined}" c a u s e s t h e s e t t i n g t o b e r e m o v e d ( o r b e s e t
* t o null , i f u s e d a s a m e m b e r o f a n a r r a y ) .
* - I f t h e e n v i r o n m e n t v a r i a b l e i s u n s e t a n d n o d e f a u l t v a l u e i s p r o v i d e d ,
* t h e v a l u e b e c o m e s null . T H I S B E H A V I O R M A Y C H A N G E I N A F U T U R E V E R S I O N O F
* E T H E R P A D ; i f y o u w a n t t h e d e f a u l t v a l u e t o b e null , y o u s h o u l d e x p l i c i t l y
* s p e c i f y "null" a s t h e d e f a u l t v a l u e .
*
2020-10-20 13:46:23 +02:00
* E X A M P L E :
* "port" : "${PORT:9001}"
* "minify" : "${MINIFY}"
* "skinName" : "${SKIN_NAME:colibris}"
*
* W o u l d r e a d t h e c o n f i g u r a t i o n v a l u e s f o r t h o s e i t e m s f r o m t h e e n v i r o n m e n t
* v a r i a b l e s P O R T , M I N I F Y a n d S K I N _ N A M E .
*
* I f P O R T a n d S K I N _ N A M E v a r i a b l e s w e r e n o t d e f i n e d , t h e d e f a u l t v a l u e s 9001 a n d
* "colibris" w o u l d b e u s e d .
* T h e c o n f i g u r a t i o n v a l u e "minify" , o n t h e o t h e r h a n d , d o e s n o t h a v e a
* d e s i g n a t e d d e f a u l t v a l u e . T h u s , i f t h e e n v i r o n m e n t v a r i a b l e M I N I F Y w e r e
* u n d e f i n e d , "minify" w o u l d b e null .
*
* R E M A R K S :
* 1 ) p l e a s e n o t e t h a t v a r i a b l e s u b s t i t u t i o n a l w a y s n e e d s t o b e q u o t e d .
*
* "port" : 9001 , < - - L i t e r a l v a l u e s . W h e n n o t u s i n g
* "minify" : false s u b s t i t u t i o n , o n l y s t r i n g s m u s t b e
* "skinName" : "colibris" q u o t e d . B o o l e a n s a n d n u m b e r s m u s t n o t .
*
* "port" : "${PORT:9001}" < - - C O R R E C T : i f y o u w a n t t o u s e a v a r i a b l e
* "minify" : "${MINIFY:true}" s u b s t i t u t i o n , p u t q u o t e s a r o u n d i t s n a m e ,
* "skinName" : "${SKIN_NAME}" e v e n i f t h e r e q u i r e d v a l u e i s a n u m b e r o r
* a b o o l e a n .
* E t h e r p a d w i l l t a k e c a r e o f r e w r i t i n g i t
* t o t h e p r o p e r t y p e i f n e c e s s a r y .
*
* "port" : $ { P O R T : 9 0 0 1 } < - - E R R O R : t h i s i s n o t v a l i d j s o n . Q u o t e s
* "minify" : $ { M I N I F Y } a r o u n d v a r i a b l e n a m e s a r e m i s s i n g .
* "skinName" : $ { S K I N _ N A M E }
*
* 2 ) B e w a r e o f u n d e f i n e d v a r i a b l e s a n d d e f a u l t v a l u e s : n u l l s a n d e m p t y s t r i n g s
* a r e d i f f e r e n t !
*
* T h i s i s p a r t i c u l a r l y i m p o r t a n t f o r u s e r ' s p a s s w o r d s ( s e e t h e r e l e v a n t
* s e c t i o n ) :
*
* "password" : "${PASSW}" // if PASSW is not defined would result in password === null
* "password" : "${PASSW:}" // if PASSW is not defined would result in password === ''
*
* I f y o u w a n t t o u s e a n e m p t y v a l u e ( null ) a s d e f a u l t v a l u e f o r a v a r i a b l e ,
* s i m p l y d o n o t s e t i t , w i t h o u t p u t t i n g a n y c o l o n s : "${ABIWORD}" .
*
* 3 ) i f y o u w a n t t o u s e n e w l i n e s i n t h e d e f a u l t v a l u e o f a s t r i n g p a r a m e t e r ,
* u s e "\n" a s u s u a l .
*
* "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2"
* /
2016-07-10 18:41:49 +02:00
{
2020-10-20 13:46:23 +02:00
/ *
* N a m e y o u r i n s t a n c e !
* /
2016-07-10 18:41:49 +02:00
"title" : "Etherpad" ,
2020-10-20 13:46:23 +02:00
/ *
2021-05-16 10:55:42 +02:00
* P a t h n a m e o f t h e f a v i c o n y o u w a n t t o u s e . I f null , t h e s k i n ' s f a v i c o n i s
* u s e d i f o n e i s p r o v i d e d b y t h e s k i n , o t h e r w i s e t h e d e f a u l t E t h e r p a d f a v i c o n
* i s u s e d . I f t h i s i s a r e l a t i v e p a t h i t i s i n t e r p r e t e d a s r e l a t i v e t o t h e
* E t h e r p a d r o o t d i r e c t o r y .
2020-10-20 13:46:23 +02:00
* /
2021-05-16 10:55:42 +02:00
"favicon" : null ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* S k i n n a m e .
*
* I t s v a l u e h a s t o b e a n e x i s t i n g d i r e c t o r y u n d e r s r c / s t a t i c / s k i n s .
* Y o u c a n w r i t e y o u r o w n , o r u s e o n e o f t h e i n c l u d e d o n e s :
*
* - "no-skin" : a n e m p t y s k i n ( d e f a u l t ) . T h i s y i e l d s t h e u n m o d i f i e d ,
* t r a d i t i o n a l E t h e r p a d t h e m e .
* - "colibris" : t h e n e w e x p e r i m e n t a l s k i n ( s i n c e E t h e r p a d 1.8 ) , c a n d i d a t e t o
* b e c o m e t h e d e f a u l t i n E t h e r p a d 2.0
* /
"skinName" : "colibris" ,
/ *
* S k i n V a r i a n t s
*
* U s e t h e U I s k i n v a r i a n t s b u i l d e r a t / p / t e s t # s k i n v a r i a n t s b u i l d e r
*
* F o r t h e c o l i b r i s s k i n o n l y , y o u c a n c h o o s e h o w t o r e n d e r t h e t h r e e m a i n
* c o n t a i n e r s :
* - t o o l b a r ( t o p m e n u w i t h i c o n s )
* - e d i t o r ( c o n t a i n i n g t h e t e x t o f t h e p a d )
* - b a c k g r o u n d ( a r e a o u t s i d e o f e d i t o r , m o s t l y v i s i b l e w h e n u s i n g p a g e s t y l e )
*
* F o r e a c h o f t h e 3 c o n t a i n e r s y o u c a n c h o o s e 4 c o l o r c o m b i n a t i o n s :
* s u p e r - l i g h t , l i g h t , d a r k , s u p e r - d a r k .
*
* F o r e x a m p l e , t o m a k e t h e t o o l b a r d a r k , y o u w i l l i n c l u d e "dark-toolbar" i n t o
* s k i n V a r i a n t s .
*
* Y o u c a n p r o v i d e m u l t i p l e s k i n v a r i a n t s s e p a r a t e d b y s p a c e s . D e f a u l t
* s k i n V a r i a n t i s "super-light-toolbar super-light-editor light-background" .
*
* F o r t h e e d i t o r c o n t a i n e r , y o u c a n a l s o m a k e i t f u l l w i d t h b y a d d i n g
* "full-width-editor" v a r i a n t ( b y d e f a u l t e d i t o r i s r e n d e r e d a s a p a g e , w i t h
* a m a x - w i d t h o f 900 p x ) .
* /
2020-12-21 22:54:19 +01:00
"skinVariants" : "light-toolbar super-light-editor dark-background" ,
2020-10-20 13:46:23 +02:00
/ *
* I P a n d p o r t w h i c h E t h e r p a d s h o u l d b i n d a t .
*
* B i n d i n g t o a U n i x s o c k e t i s a l s o s u p p o r t e d : j u s t u s e a n e m p t y s t r i n g f o r
* t h e i p , a n d p u t t h e f u l l p a t h t o t h e s o c k e t i n t h e p o r t p a r a m e t e r .
*
* E X A M P L E U S I N G U N I X S O C K E T :
* "ip" : "" , // <-- has to be an empty string
* "port" : "/somepath/etherpad.socket" , // <-- path to a Unix socket
* /
"ip" : "127.0.0.1" ,
"port" : _ _ P O R T _ _ ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* O p t i o n t o h i d e / s h o w t h e s e t t i n g s . j s o n i n a d m i n p a g e .
*
* D e f a u l t o p t i o n i s s e t t o true
* /
"showSettingsInAdminPage" : true ,
2016-07-10 18:41:49 +02:00
/ *
2020-10-20 13:46:23 +02:00
* N o d e n a t i v e S S L s u p p o r t
*
* T h i s i s d i s a b l e d b y d e f a u l t .
* M a k e s u r e t o h a v e t h e m i n i m u m a n d c o r r e c t f i l e a c c e s s p e r m i s s i o n s s e t s o
* t h a t t h e E t h e r p a d s e r v e r c a n a c c e s s t h e m
* /
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
2016-07-10 18:41:49 +02:00
"ssl" : {
2020-10-20 13:46:23 +02:00
"key" : "/path-to-your/epl-server.key" ,
"cert" : "/path-to-your/epl-server.crt" ,
"ca" : [ "/path-to-your/epl-intermediate-cert1.crt" , "/path-to-your/epl-intermediate-cert2.crt" ]
2016-07-10 18:41:49 +02:00
} ,
* /
2020-10-20 13:46:23 +02:00
/ *
* T h e t y p e o f t h e d a t a b a s e .
*
* Y o u c a n c h o o s e b e t w e e n m a n y D B d r i v e r s , f o r e x a m p l e : d i r t y , p o s t g r e s ,
* s q l i t e , m y s q l .
*
* Y o u s h o u l d n ' t u s e "dirty" f o r f o r a n y t h i n g e l s e t h a n t e s t i n g o r
* d e v e l o p m e n t .
* /
/ *
* T h e d e f a u l t t e x t o f a p a d
* /
2022-02-24 09:38:32 +01:00
"defaultPadText" : "Welcome to Etherpad-lite!\n\nThis version of Etherpad is installed without plugins and uses Redis as database.\nBe aware, Redis database backup and restore is not fully implemented.\n\nIf you are facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/etherpad_ynh" ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* D e f a u l t P a d b e h a v i o r .
*
* C h a n g e t h e m i f y o u w a n t t o o v e r r i d e .
* /
"padOptions" : {
"noColors" : false ,
"showControls" : true ,
"showChat" : true ,
"showLineNumbers" : true ,
"useMonospaceFont" : false ,
2023-10-28 17:17:29 +02:00
"userName" : null ,
"userColor" : null ,
2020-10-20 13:46:23 +02:00
"rtl" : false ,
"alwaysShowChat" : false ,
"chatAndUsers" : false ,
"lang" : "__LANGUAGE__"
} ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* P a d S h o r t c u t K e y s
* /
"padShortcutEnabled" : {
"altF9" : true , / * f o c u s o n t h e F i l e M e n u a n d / o r e d i t b a r * /
"altC" : true , / * f o c u s o n t h e C h a t w i n d o w * /
"cmdShift2" : true , / * s h o w s a g r i t t e r p o p u p s h o w i n g a l i n e a u t h o r * /
"delete" : true ,
"return" : true ,
"esc" : true , / * i n m o z i l l a v e r s i o n s 14 -19 a v o i d r e c o n n e c t i n g p a d * /
"cmdS" : true , / * s a v e a r e v i s i o n * /
"tab" : true , / * i n d e n t * /
"cmdZ" : true , / * u n d o / r e d o * /
"cmdY" : true , / * r e d o * /
"cmdI" : true , / * i t a l i c * /
"cmdB" : true , / * b o l d * /
"cmdU" : true , / * u n d e r l i n e * /
"cmd5" : true , / * s t r i k e t h r o u g h * /
"cmdShiftL" : true , / * u n o r d e r e d l i s t * /
"cmdShiftN" : true , / * o r d e r e d l i s t * /
"cmdShift1" : true , / * o r d e r e d l i s t * /
"cmdShiftC" : true , / * c l e a r a u t h o r s h i p * /
"cmdH" : true , / * b a c k s p a c e * /
"ctrlHome" : true , / * s c r o l l t o t o p o f p a d * /
"pageUp" : true ,
"pageDown" : true
} ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* S h o u l d w e s u p p r e s s e r r o r s f r o m b e i n g v i s i b l e i n t h e d e f a u l t P a d T e x t ?
* /
"suppressErrorsInPadText" : false ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* I f t h i s o p t i o n i s e n a b l e d , a u s e r m u s t h a v e a s e s s i o n t o a c c e s s p a d s .
* T h i s e f f e c t i v e l y a l l o w s o n l y g r o u p p a d s t o b e a c c e s s e d .
* /
"requireSession" : false ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* U s e r s m a y e d i t p a d s b u t n o t c r e a t e n e w o n e s .
*
* P a d c r e a t i o n i s o n l y v i a t h e A P I .
* T h i s a p p l i e s b o t h t o g r o u p p a d s a n d r e g u l a r p a d s .
* /
"editOnly" : false ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* I f true , a l l c s s & j s w i l l b e m i n i f i e d b e f o r e s e n d i n g t o t h e c l i e n t .
*
* T h i s w i l l i m p r o v e t h e l o a d i n g p e r f o r m a n c e m a s s i v e l y , b u t m a k e s i t d i f f i c u l t
* t o d e b u g t h e j a v a s c r i p t / c s s
* /
2024-05-09 16:44:29 +02:00
"minify" : true ,
2016-07-10 18:41:49 +02:00
2020-10-20 13:46:23 +02:00
/ *
* H o w l o n g m a y c l i e n t s u s e s e r v e d j a v a s c r i p t c o d e ( i n s e c o n d s ) ?
*
* N o t s e t t i n g t h i s m a y c a u s e p r o b l e m s d u r i n g d e p l o y m e n t .
* S e t t o 0 t o d i s a b l e c a c h i n g .
* /
2021-05-16 10:55:42 +02:00
"maxAge" : 21600 , // 60 * 60 * 6 = 6 hours
2020-10-20 13:46:23 +02:00
/ *
* A b s o l u t e p a t h t o t h e A b i w o r d e x e c u t a b l e .
*
* A b i w o r d i s n e e d e d t o g e t a d v a n c e d i m p o r t / e x p o r t f e a t u r e s o f p a d s . S e t t i n g
* i t t o null d i s a b l e s A b i w o r d a n d w i l l o n l y a l l o w p l a i n t e x t a n d H T M L
* i m p o r t / e x p o r t s .
* /
2021-02-15 11:55:40 +01:00
"abiword" : null ,
2020-10-20 13:46:23 +02:00
/ *
* T h i s i s t h e a b s o l u t e p a t h t o t h e s o f f i c e e x e c u t a b l e .
*
* L i b r e O f f i c e c a n b e u s e d i n l i e u o f A b i w o r d t o e x p o r t p a d s .
* S e t t i n g i t t o null d i s a b l e s L i b r e O f f i c e e x p o r t i n g .
* /
2021-02-15 11:55:40 +01:00
"soffice" : null ,
2020-10-20 13:46:23 +02:00
/ *
* A l l o w i m p o r t o f f i l e t y p e s o t h e r t h a n t h e s u p p o r t e d o n e s :
* t x t , d o c , d o c x , r t f , o d t , h t m l & h t m
* /
"allowUnknownFileEnds" : true ,
/ *
* T h i s s e t t i n g i s u s e d i f y o u r e q u i r e a u t h e n t i c a t i o n o f a l l u s e r s .
*
* N o t e : "/admin" a l w a y s r e q u i r e s a u t h e n t i c a t i o n .
* /
2016-07-10 18:41:49 +02:00
"requireAuthentication" : false ,
2020-10-20 13:46:23 +02:00
/ *
* R e q u i r e a u t h o r i z a t i o n b y a m o d u l e , o r a u s e r w i t h i s _ a d m i n s e t , s e e b e l o w .
* /
2016-07-10 18:41:49 +02:00
"requireAuthorization" : false ,
2020-10-20 13:46:23 +02:00
/ *
* W h e n y o u u s e N G I N X o r a n o t h e r p r o x y / l o a d - b a l a n c e r s e t t h i s t o true .
*
* T h i s i s e s p e c i a l l y n e c e s s a r y w h e n t h e r e v e r s e p r o x y p e r f o r m s S S L
* t e r m i n a t i o n , o t h e r w i s e t h e c o o k i e s w i l l n o t h a v e t h e "secure" f l a g .
*
* T h e o t h e r e f f e c t w i l l b e t h a t t h e l o g s w i l l c o n t a i n t h e r e a l c l i e n t ' s I P ,
* i n s t e a d o f t h e r e v e r s e p r o x y ' s I P .
* /
"trustProxy" : false ,
2016-07-10 18:41:49 +02:00
2021-02-15 11:55:40 +01:00
/ *
* S e t t i n g s c o n t r o l l i n g t h e s e s s i o n c o o k i e i s s u e d b y E t h e r p a d .
* /
"cookie" : {
2023-10-28 17:17:29 +02:00
/ *
* H o w o f t e n ( i n m i l l i s e c o n d s ) t h e k e y u s e d t o s i g n t h e e x p r e s s _ s i d c o o k i e
* s h o u l d b e r o t a t e d . L o n g r o t a t i o n i n t e r v a l s r e d u c e s i g n a t u r e v e r i f i c a t i o n
* o v e r h e a d ( b e c a u s e t h e r e a r e f e w e r h i s t o r i c a l k e y s t o c h e c k ) a n d d a t a b a s e
* l o a d ( f e w e r h i s t o r i c a l k e y s t o s t o r e , a n d l e s s f r e q u e n t q u e r i e s t o
* g e t / u p d a t e t h e k e y s ) . S h o r t r o t a t i o n i n t e r v a l s a r e s l i g h t l y m o r e s e c u r e .
*
* M u l t i p l e E t h e r p a d p r o c e s s e s s h a r i n g t h e s a m e d a t a b a s e ( t a b l e ) i s
* s u p p o r t e d a s l o n g a s t h e c l o c k s y n c e r r o r i s s i g n i f i c a n t l y l e s s t h a n t h i s
* v a l u e .
*
* K e y r o t a t i o n c a n b e d i s a b l e d ( n o t r e c o m m e n d e d ) b y s e t t i n g t h i s t o 0 o r
* null , o r b y d i s a b l i n g s e s s i o n e x p i r a t i o n ( s e e s e s s i o n L i f e t i m e ) .
* /
"keyRotationInterval" : 86400000 , // = 1d * 24h/d * 60m/h * 60s/m * 1000ms/s
2021-02-15 11:55:40 +01:00
/ *
* V a l u e o f t h e S a m e S i t e c o o k i e p r o p e r t y . "Lax" i s r e c o m m e n d e d u n l e s s
* E t h e r p a d w i l l b e e m b e d d e d i n a n i f r a m e f r o m a n o t h e r s i t e , i n w h i c h c a s e
* t h i s m u s t b e s e t t o "None" . N o t e : "None" w i l l n o t w o r k ( t h e b r o w s e r w i l l
* n o t s e n d t h e c o o k i e t o E t h e r p a d ) u n l e s s h t t p s i s u s e d t o a c c e s s E t h e r p a d
* ( e i t h e r d i r e c t l y o r v i a a r e v e r s e p r o x y w i t h "trustProxy" s e t t o true ) .
*
* "Strict" i s n o t r e c o m m e n d e d b e c a u s e i t h a s f e w s e c u r i t y b e n e f i t s b u t
* s i g n i f i c a n t u s a b i l i t y d r a w b a c k s v s . "Lax" . S e e
* h t t p s : //stackoverflow.com/q/41841880 for discussion.
* /
2023-10-28 17:17:29 +02:00
"sameSite" : "Lax" ,
/ *
* H o w l o n g ( i n m i l l i s e c o n d s ) a f t e r n a v i g a t i n g a w a y f r o m E t h e r p a d b e f o r e t h e
* u s e r i s r e q u i r e d t o l o g i n a g a i n . ( T h e e x p r e s s _ s i d c o o k i e i s s e t t o
* e x p i r e a t t i m e n o w + s e s s i o n L i f e t i m e w h e n f i r s t c r e a t e d , a n d i t s
* e x p i r a t i o n t i m e i s p e r i o d i c a l l y r e f r e s h e d t o a n e w n o w + s e s s i o n L i f e t i m e
* v a l u e . ) I f r e q u i r e A u t h e n t i c a t i o n i s false t h e n t h i s v a l u e d o e s n o t r e a l l y
* m a t t e r .
*
* T h e "best" v a l u e d e p e n d s o n y o u r u s e r s ' u s a g e p a t t e r n s a n d t h e a m o u n t o f
* c o n v e n i e n c e y o u d e s i r e . A l o n g l i f e t i m e i s m o r e c o n v e n i e n t ( u s e r s w o n ' t
* h a v e t o l o g b a c k i n a s o f t e n ) b u t h a s s o m e d r a w b a c k s :
* - I t i n c r e a s e s t h e a m o u n t o f s t a t e k e p t i n t h e d a t a b a s e .
* - I t m i g h t w e a k e n s e c u r i t y s o m e w h a t : T h e c o o k i e e x p i r a t i o n i s r e f r e s h e d
* i n d e f i n i t e l y w i t h o u t c o n s u l t i n g a u t h e n t i c a t i o n o r a u t h o r i z a t i o n
* h o o k s , s o o n c e a u s e r h a s a c c e s s e d a p a d , t h e u s e r c a n c o n t i n u e t o
* u s e t h e p a d u n t i l t h e u s e r l e a v e s f o r l o n g e r t h a n s e s s i o n L i f e t i m e .
* - M o r e h i s t o r i c a l k e y s ( s e s s i o n L i f e t i m e / k e y R o t a t i o n I n t e r v a l ) m u s t b e
* c h e c k e d w h e n v e r i f y i n g s i g n a t u r e s .
*
* S e s s i o n l i f e t i m e c a n b e s e t t o i n f i n i t y ( n o t r e c o m m e n d e d ) b y s e t t i n g t h i s
* t o null o r 0 . N o t e t h a t i f t h e s e s s i o n d o e s n o t e x p i r e , m o s t b r o w s e r s
* w i l l d e l e t e t h e c o o k i e w h e n t h e b r o w s e r e x i t s , b u t a s e s s i o n r e c o r d i s
* k e p t i n t h e d a t a b a s e f o r e v e r .
* /
"sessionLifetime" : 864000000 , // = 10d * 24h/d * 60m/h * 60s/m * 1000ms/s
/ *
* H o w l o n g ( i n m i l l i s e c o n d s ) b e f o r e t h e e x p i r a t i o n t i m e o f a n a c t i v e u s e r ' s
* s e s s i o n i s r e f r e s h e d ( t o n o w + s e s s i o n L i f e t i m e ) . T h i s s e t t i n g a f f e c t s t h e
* f o l l o w i n g :
* - H o w o f t e n a n e w s e s s i o n e x p i r a t i o n t i m e w i l l b e w r i t t e n t o t h e
* d a t a b a s e .
* - H o w o f t e n e a c h u s e r ' s b r o w s e r w i l l p i n g t h e E t h e r p a d s e r v e r t o
* r e f r e s h t h e e x p i r a t i o n t i m e o f t h e s e s s i o n c o o k i e .
*
* H i g h v a l u e s r e d u c e t h e l o a d o n t h e d a t a b a s e a n d t h e l o a d f r o m b r o w s e r s ,
* b u t c a n s h o r t e n t h e e f f e c t i v e s e s s i o n l i f e t i m e i f E t h e r p a d i s r e s t a r t e d
* o r t h e u s e r n a v i g a t e s a w a y .
*
* A u t o m a t i c s e s s i o n r e f r e s h e s c a n b e d i s a b l e d ( n o t r e c o m m e n d e d ) b y s e t t i n g
* t h i s t o null .
* /
"sessionRefreshInterval" : 86400000 // = 1d * 24h/d * 60m/h * 60s/m * 1000ms/s
2021-02-15 11:55:40 +01:00
} ,
2020-10-20 13:46:23 +02:00
/ *
* P r i v a c y : d i s a b l e I P l o g g i n g
* /
2016-07-10 18:41:49 +02:00
"disableIPlogging" : false ,
/ *
2020-10-20 13:46:23 +02:00
* T i m e ( i n s e c o n d s ) t o a u t o m a t i c a l l y r e c o n n e c t p a d w h e n a "Force reconnect"
* m e s s a g e i s s h o w n t o u s e r .
*
* S e t t o 0 t o d i s a b l e a u t o m a t i c r e c o n n e c t i o n .
* /
"automaticReconnectionTimeout" : 0 ,
/ *
* B y d e f a u l t , w h e n c a r e t i s m o v e d o u t o f v i e w p o r t , i t s c r o l l s t h e m i n i m u m
* h e i g h t n e e d e d t o m a k e t h i s l i n e v i s i b l e .
* /
"scrollWhenFocusLineIsOutOfViewport" : {
/ *
* P e r c e n t a g e o f v i e w p o r t h e i g h t t o b e a d d i t i o n a l l y s c r o l l e d .
*
* E . g . : u s e "percentage.editionAboveViewport" : 0.5 , t o p l a c e c a r e t l i n e i n
* t h e m i d d l e o f v i e w p o r t , w h e n u s e r e d i t s a l i n e a b o v e o f t h e
* v i e w p o r t
*
* S e t t o 0 t o d i s a b l e e x t r a s c r o l l i n g
* /
"percentage" : {
"editionAboveViewport" : 0 ,
"editionBelowViewport" : 0
2016-07-10 18:41:49 +02:00
} ,
2020-10-20 13:46:23 +02:00
/ *
* T i m e ( i n m i l l i s e c o n d s ) u s e d t o a n i m a t e t h e s c r o l l t r a n s i t i o n .
* S e t t o 0 t o d i s a b l e a n i m a t i o n
* /
"duration" : 0 ,
/ *
* F l a g t o c o n t r o l i f i t s h o u l d s c r o l l w h e n u s e r p l a c e s t h e c a r e t i n t h e
* l a s t l i n e o f t h e v i e w p o r t
* /
"scrollWhenCaretIsInTheLastLineOfViewport" : false ,
/ *
* P e r c e n t a g e o f v i e w p o r t h e i g h t t o b e a d d i t i o n a l l y s c r o l l e d w h e n u s e r
* p r e s s e s a r r o w u p i n t h e l i n e o f t h e t o p o f t h e v i e w p o r t .
*
* S e t t o 0 t o l e t t h e s c r o l l t o b e h a n d l e d a s d e f a u l t b y E t h e r p a d
* /
"percentageToScrollWhenUserPressesArrowUp" : 0
2016-07-10 18:41:49 +02:00
} ,
2021-02-15 11:55:40 +01:00
/ *
* U s e r a c c o u n t s . T h e s e a c c o u n t s a r e u s e d b y :
* - d e f a u l t H T T P b a s i c a u t h e n t i c a t i o n i f n o p l u g i n h a n d l e s a u t h e n t i c a t i o n
* - s o m e b u t n o t a l l a u t h e n t i c a t i o n p l u g i n s
* - s o m e b u t n o t a l l a u t h o r i z a t i o n p l u g i n s
*
* U s e r p r o p e r t i e s :
* - p a s s w o r d : T h e u s e r ' s p a s s w o r d . S o m e a u t h e n t i c a t i o n p l u g i n s w i l l i g n o r e
* t h i s .
* - i s _ a d m i n : true g i v e s a c c e s s t o / a d m i n . D e f a u l t s t o false . I f y o u d o n o t
* u n c o m m e n t t h i s , / a d m i n w i l l n o t b e a v a i l a b l e !
* - r e a d O n l y : I f true , t h i s u s e r w i l l n o t b e a b l e t o c r e a t e n e w p a d s o r
* m o d i f y e x i s t i n g p a d s . D e f a u l t s t o false .
* - c a n C r e a t e : I f t h i s i s true a n d r e a d O n l y i s false , t h i s u s e r c a n c r e a t e
* n e w p a d s . D e f a u l t s t o true .
*
* A u t h e n t i c a t i o n a n d a u t h o r i z a t i o n p l u g i n s m a y d e f i n e a d d i t i o n a l p r o p e r t i e s .
*
* W A R N I N G : p a s s w o r d s s h o u l d n o t b e s t o r e d i n p l a i n t e x t i n t h i s f i l e .
* I f y o u w a n t t o m i t i g a t e t h i s , p l e a s e i n s t a l l e p _ h a s h _ a u t h a n d
* f o l l o w t h e s e c t i o n "secure your installation" i n R E A D M E . m d
* /
/ *
"users" : {
"admin" : {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password" : "changeme1" ,
"is_admin" : true
} ,
"user" : {
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password" : "changeme1" ,
"is_admin" : false
}
} ,
* /
2020-10-20 13:46:23 +02:00
/ *
* R e s t r i c t s o c k e t . i o t r a n s p o r t m e t h o d s
* /
2024-05-09 18:29:40 +02:00
"socketTransportProtocols" : [ "websocket" , "polling" ] ,
2016-07-10 18:41:49 +02:00
2021-02-15 11:55:40 +01:00
"socketIo" : {
/ *
* M a x i m u m p e r m i t t e d c l i e n t m e s s a g e s i z e ( i n b y t e s ) . A l l m e s s a g e s f r o m
* c l i e n t s t h a t a r e l a r g e r t h a n t h i s w i l l b e r e j e c t e d . L a r g e v a l u e s m a k e i t
* p o s s i b l e t o p a s t e l a r g e a m o u n t s o f t e x t , a n d p l u g i n s m a y r e q u i r e a l a r g e r
* v a l u e t o w o r k p r o p e r l y , b u t i n c r e a s i n g t h e v a l u e i n c r e a s e s s u s c e p t i b i l i t y
* t o d e n i a l o f s e r v i c e a t t a c k s ( m a l i c i o u s c l i e n t s c a n e x h a u s t m e m o r y ) .
* /
"maxHttpBufferSize" : 10000
} ,
2020-10-20 13:46:23 +02:00
/ *
* A l l o w L o a d T e s t i n g t o o l s t o h i t t h e E t h e r p a d I n s t a n c e .
*
* W A R N I N G : t h i s w i l l d i s a b l e s e c u r i t y o n t h e i n s t a n c e .
* /
"loadTest" : false ,
2021-05-16 10:55:42 +02:00
/ * *
* D i s a b l e d u m p o f o b j e c t s p r e v e n t i n g a c l e a n e x i t
* /
"dumpOnUncleanExit" : false ,
2020-10-20 13:46:23 +02:00
/ *
* D i s a b l e i n d e n t a t i o n o n n e w l i n e w h e n p r e v i o u s l i n e e n d s w i t h s o m e s p e c i a l
* c h a r s ( ' : ' , ' [ ' , ' ( ' , ' { ' )
* /
/ *
"indentationOnNewLine" : false ,
* /
/ *
* F r o m E t h e r p a d 1.8 . 3 o n w a r d s , i m p o r t a n d e x p o r t o f p a d s i s a l w a y s r a t e
* l i m i t e d .
*
* T h e d e f a u l t i s t o a l l o w a t m o s t 10 r e q u e s t s p e r I P i n a 90 s e c o n d s w i n d o w .
* A f t e r t h a t t h e i m p o r t / e x p o r t r e q u e s t i s r e j e c t e d .
*
* S e e h t t p s : //github.com/nfriedly/express-rate-limit for more options
* /
"importExportRateLimiting" : {
// duration of the rate limit window (milliseconds)
"windowMs" : 90000 ,
// maximum number of requests per IP to allow during the rate limit window
"max" : 10
} ,
/ *
* F r o m E t h e r p a d 1.8 . 3 o n w a r d s , t h e m a x i m u m a l l o w e d s i z e f o r a s i n g l e i m p o r t e d
* f i l e i s a l w a y s b o u n d e d .
*
* F i l e s i z e i s s p e c i f i e d i n b y t e s . D e f a u l t i s 50 M B .
* /
"importMaxFileSize" : 52428800 , // 50 * 1024 * 1024
/ *
2021-02-15 11:55:40 +01:00
* F r o m E t h e r p a d 1.8 . 5 o n w a r d s , w h e n E t h e r p a d i s i n p r o d u c t i o n m o d e c o m m i t s f r o m i n d i v i d u a l u s e r s a r e r a t e l i m i t e d
2020-10-20 13:46:23 +02:00
*
* T h e d e f a u l t i s t o a l l o w a t m o s t 10 c h a n g e s p e r I P i n a 1 s e c o n d w i n d o w .
* A f t e r t h a t t h e c h a n g e i s r e j e c t e d .
*
* S e e h t t p s : //github.com/animir/node-rate-limiter-flexible/wiki/Overall-example#websocket-single-connection-prevent-flooding for more options
* /
"commitRateLimiting" : {
// duration of the rate limit window (seconds)
"duration" : 1 ,
2021-02-15 11:55:40 +01:00
// maximum number of changes per IP to allow during the rate limit window
2020-10-20 13:46:23 +02:00
"points" : 10
} ,
/ *
* T o o l b a r b u t t o n s c o n f i g u r a t i o n .
*
* U n c o m m e n t t o c u s t o m i z e .
* /
/ *
"toolbar" : {
"left" : [
[ "bold" , "italic" , "underline" , "strikethrough" ] ,
[ "orderedlist" , "unorderedlist" , "indent" , "outdent" ] ,
[ "undo" , "redo" ] ,
[ "clearauthorship" ]
] ,
"right" : [
[ "importexport" , "timeslider" , "savedrevision" ] ,
[ "settings" , "embed" ] ,
[ "showusers" ]
] ,
"timeslider" : [
[ "timeslider_export" , "timeslider_returnToPad" ]
]
} ,
* /
/ *
* E x p o s e E t h e r p a d v e r s i o n i n t h e w e b i n t e r f a c e a n d i n t h e S e r v e r h t t p h e a d e r .
*
* D o n o t e n a b l e o n p r o d u c t i o n m a c h i n e s .
* /
"exposeVersion" : false ,
/ *
* T h e l o g l e v e l w e a r e u s i n g .
*
* V a l i d v a l u e s : D E B U G , I N F O , W A R N , E R R O R
* /
2016-07-10 18:41:49 +02:00
"loglevel" : "INFO" ,
2020-10-20 13:46:23 +02:00
/ * O v e r r i d e a n y s t r i n g s f o u n d i n l o c a l e d i r e c t o r i e s * /
2021-02-15 11:55:40 +01:00
"customLocaleStrings" : { } ,
/ * D i s a b l e A d m i n U I t e s t s * /
2023-10-28 17:17:29 +02:00
"enableAdminUITests" : false ,
/ *
* E n a b l e / D i s a b l e c a s e - i n s e n s i t i v e p a d n a m e s .
* /
2024-05-09 19:13:17 +02:00
"lowerCasePadIds" : false ,
"sso" : {
"issuer" : "${SSO_ISSUER:http://localhost:9001}" ,
"clients" : [
{
"client_id" : "${ADMIN_CLIENT:admin_client}" ,
"client_secret" : "${ADMIN_SECRET:admin}" ,
"grant_types" : [ "authorization_code" ] ,
"response_types" : [ "code" ] ,
"redirect_uris" : [ "${ADMIN_REDIRECT:http://localhost:9001/admin/}" ]
} ,
{
"client_id" : "${USER_CLIENT:user_client}" ,
"client_secret" : "${USER_SECRET:user}" ,
"grant_types" : [ "authorization_code" ] ,
"response_types" : [ "code" ] ,
"redirect_uris" : [ "${USER_REDIRECT:http://localhost:9001/}" ]
}
]
}
/ * S e t t h e t i m e t o l i v e f o r t h e t o k e n s
T h i s i s t h e t i m e o f s e c o n d s a u s e r i s l o g g e d i n t o E t h e r p a d
"ttl" : {
"AccessToken" : 3600 ,
"AuthorizationCode" : 600 ,
"ClientCredentials" : 3600 ,
"IdToken" : 3600 ,
"RefreshToken" : 86400
}
* /
2021-02-26 09:34:20 +01:00
}