Etherpad-lite: рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ (1.6.2 -> 1.8.3) рдЬрдм рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдорд┐рдиреАрдлрд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЙрдкрдЦрдВрдб рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ / рд╕рдЪ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  110рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ether/etherpad-lite

image

рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХреЙрди рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдлреЙрдиреНрдЯ рдХреА рдлреЗрдорд┐рд▓реА рдПрд░рд░ рдЧрд╛рдпрдм рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдЕрдкрдиреЗ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдкреНрд░рд╛рдкреНрдд/static/font/Roboto-Regular.ttf net :: ERR_ABORTED 404 (рдирд╣реАрдВ рдорд┐рд▓рд╛)

рдореБрдЭреЗ рдпрд╣ рд╕рднреА рдлреЙрдиреНрдЯ рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рддрд╛ рд╣реИред

Bug Special case Bug UI express server

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (/ рдЗрдерд░рдкреИрдб) рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╕рд╣реА рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

<Location /static/font>
    ProxyPass http://localhost:9001/static/font
    ProxyPassReverse http://localhost:9001/static/font
</Location>

рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред jsonред

рд╕рднреА 110 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреГрдкреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдХреНрдпрд╛ рдЖрдк рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк рд╡рд┐рдХрд╛рд╕ рдпрд╛ рдЙрддреНрдкрд╛рджрди рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ
рдХрдо рд╕реЗ рдХрдо?
рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдпрд╛ рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧред Json
рдЖрджрд┐ред

https://mclear.co.uk/2015/01/15/how-to-write-a-bug-report/

рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдордб рд╕рд░реНрд╡рд┐рд╕ рдореЗрдВ "рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ = NODE_ENV = рдкреНрд░реЛрдбрдХреНрд╢рди" рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ рд╣реИ, рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдорд┐рдирд┐рдорд╛рдЗрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдЬрд╕рди рдХреЛ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЫреБрдЖ рдЬрд╛рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ mysql рдФрд░ admin pw рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдИрдерд░рдкреИрдб рд╕рднреА рдлреЛрдВрдЯ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд┐рдЦрддрд╛ рд╣реИрдЗрд╕рдХреЗ рдмрдЬрд╛рдп /static/font/*.ttf/ рдИрдерд░рдкреИрдб / src / рд╕реНрдерд┐рд░ / рдлрд╝реЙрдиреНрдЯ /

рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЧрд▓рдд рдФрд░ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ

рдореИрдВрдиреЗ рдХрд┐рдпрд╛, рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛

рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдЕрдм, рдЕрдзрд┐рдХ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред json (рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдВ)ред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

FWIW рдореИрдВрдиреЗ 1.6 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред *> 1.8.3 рдФрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рд╡рд┐рд░рд╛рд╕рдд cruft рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:!

рдпрджрд┐ рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдЪреАрдЬ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣реИ:

cp settings.json settings.backup.json
cp settings.json.template settings.json
рдлрд┐рд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрд╕реНрдЯ / рдпреВрдЬрд░ / рдХреЙрдкреА рдХреЛ settings.backup.json рд╕реЗ settings.json

рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИред

/*
  This file must be valid JSON. But comments are allowed

  Please edit settings.json, not settings.json.template

  To still commit settings without credentials you can
  store any credential settings in credentials.json
*/
{
  // Name your instance!
  "title": "HelpMe-Etherpad",

  // favicon default name
  // alternatively, set up a fully specified Url to your own favicon
  "favicon": "favicon.ico",

  //IP and port which etherpad should bind at
  "ip": "0.0.0.0",
  "port" : 9001,

  // Option to hide/show the settings.json in admin page, default option is set to true
  "showSettingsInAdminPage" : true,

  /*
  // Node native SSL support
  // this is disabled by default
  //
  // make sure to have the minimum and correct file access permissions set
  // so that the Etherpad server can access them

  "ssl" : {
            "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"]
          },

  */

  //The Type of the database. You can choose between dirty, postgres, sqlite and mysql
  //You shouldn't use "dirty" for for anything else than testing or development
  /*"dbType" : "dirty",
  //the database specific settings
  "dbSettings" : {
                   "filename" : "var/dirty.db"
                 },

   An Example of MySQL Configuration*/
   "dbType" : "mysql",
   "dbSettings" : {
                    "user"    : "etherpad",
                    "host"    : "localhost",
                    "password": "",
                    "database": "etherpad",
                    "charset" : "utf8mb4"
                  },
   "users": {
    "admin": {
        "password": "",
        "is_admin": true
        }
            },

  //the default text of a pad
  "defaultPadText" : "Willkommen zum CN-Etherpad!\n\nDieses Dokument wird beim Tippen laufend aktualisiert, sodass jeder immer denselben Text sieht. So kann man nahtlos zusammen an Dokumenten arbeiten.\n",

  /* Default Pad behavior, users can override by changing */
  "padOptions": {
    "noColors": false,
    "showControls": true,
    "showChat": true,
    "showLineNumbers": true,
    "useMonospaceFont": false,
    "userName": false,
    "userColor": false,
    "rtl": false,
    "alwaysShowChat": false,
    "chatAndUsers": false,
    "lang": "de-de"
  },

  /* Should we suppress errors from being visible in the default Pad Text? */
  "suppressErrorsInPadText" : false,

  /* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
  "requireSession" : false,

  /* Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads. */
  "editOnly" : false,

  /* Users, who have a valid session, automatically get granted access to password protected pads */
  "sessionNoPassword" : false,

  /* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly,
     but makes it impossible to debug the javascript/css */
  "minify" : false,

  /* How long may clients use served javascript code (in seconds)? Without versioning this
     may cause problems during deployment. Set to 0 to disable caching */
  "maxAge" : 21600, // 60 * 60 * 6 = 6 hours

  /* This is the absolute path to the Abiword executable. Setting it to null, disables abiword.
     Abiword is needed to advanced import/export features of pads*/
  "abiword" : "/usr/local/bin/abiword",

  /* This is the absolute path to the soffice executable. Setting it to null, disables LibreOffice exporting.
     LibreOffice can be used in lieu of Abiword to export pads */
  "soffice" : null,

  /* This is the path to the Tidy executable. Setting it to null, disables Tidy.
     Tidy is used to improve the quality of exported pads*/
  "tidyHtml" : "/usr/bin/tidy",

  /* Allow import of file types other than the supported types: txt, doc, docx, rtf, odt, html & htm */
  "allowUnknownFileEnds" : true,

  /* This setting is used if you require authentication of all users.
     Note: /admin always requires authentication. */
  "requireAuthentication" : false,

  /* Require authorization by a module, or a user with is_admin set, see below. */
  "requireAuthorization" : false,

  /*when you use NginX or another proxy/ load-balancer set this to true*/
  "trustProxy" : false,

  /* Privacy: disable IP logging */
  "disableIPlogging" : false,

  /* Users for basic authentication. is_admin = true gives access to /admin.
     If you do not uncomment this, /admin will not be available! */


  // restrict socket.io transport methods
  "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],

  // Allow Load Testing tools to hit the Etherpad Instance.  Warning this will disable security on the instance.
  "loadTest": false,

  // Disable indentation on new line when previous line ends with some special chars (':', '[', '(', '{')
  /*
  "indentationOnNewLine": false,
  */

  /* The toolbar buttons configuration.
  "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"]
    ]
  },
*/
  /* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
  "loglevel": "INFO",

  //Logging configuration. See log4js documentation for further information
  // https://github.com/nomiddlename/log4js-node
  // You can add as many appenders as you want here:
  "logconfig" :
    { "appenders": [
        { "type": "console"
        //, "category": "access"// only logs pad access
        }
    /*
      , { "type": "file"
      , "filename": "your-log-file-here.log"
      , "maxLogSize": 1024
      , "backups": 3 // how many log files there're gonna be at max
      //, "category": "test" // only log a specific category
        }*/
    /*
      , { "type": "logLevelFilter"
        , "level": "warn" // filters out all log messages that have a lower level than "error"
        , "appender":
          {  Use whatever appender you want here  }
        }*/
    /*
      , { "type": "logLevelFilter"
        , "level": "error" // filters out all log messages that have a lower level than "error"
        , "appender":
          { "type": "smtp"
          , "subject": "An error occurred in your EPL instance!"
          , "recipients": "[email protected], [email protected]"
          , "sendInterval": 300 // 60 * 5 = 5 minutes -- will buffer log messages; set to 0 to send a mail for every message
          , "transport": "SMTP", "SMTP": { // see https://github.com/andris9/Nodemailer#possible-transport-methods
              "host": "smtp.example.com", "port": 465,
              "secureConnection": true,
              "auth": {
                  "user": "[email protected]",
                  "pass": "bar_foo"
              }
            }
          }
        }*/
      ]
    }
}

рдареАрдХ рд╣реИ, рд╢рд╛рдВрдд 2 рдорд┐рдирдЯред

рдирд╣реАрдВ, рдХрд┐ рдирдХрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЯреВрд▓рдмрд╛рд░ рдмрдЯрди рдореЗрд░реЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВ ..

рдХреНрдпрд╛ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореБрдЭреЗ рдИрдореЗрд▓ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ [email protected]

рдмреЗрд╡рдХреВрдл рд╕рд╡рд╛рд▓ .. рддреБрдордиреЗ рдХрд┐рдпрд╛

  • [x] рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ?
  • [x] bin/run.sh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рдирдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдЬрдЬреЛрди, рд╕реНрдХрд┐рди рдХреЛ рдиреЛ-рд╕реНрдХрд┐рди рдореЗрдВ рднреА рдмрджрд▓ рджрд┐рдпрд╛ред рдЕрднреА рднреА рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ ..
рдФрд░ рд╣рд╛рдБ, рдореИрдВрдиреЗ run.sh рдЪрд▓рд╛рдпрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдирдХрджреА рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рд╣реИ :)

рдпрд╣ рд╕рд┐рд╕реНрдЯрдордб рд╕рд░реНрд╡рд┐рд╕ btw рд╣реИ:
[рдпреВрдирд┐рдЯ]
рд╡рд┐рд╡рд░рдг = рдПрдерд░рдкреИрдб
рдХреЗ рдмрд╛рдж = syslog.target network.target

[рд╕рд░реНрд╡рд┐рд╕]
рдкреНрд░рдХрд╛рд░ = рд╕рд░рд▓
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рдИрдерд░
рд╕рдореВрд╣ = рдИрдерд░
рд╡рд░реНрдХрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА = / рдСрдкреНрдЯ / рдИрдерд░рдкреИрдб
рдкрд░реНрдпрд╛рд╡рд░рдг = NODE_ENV = рдЙрддреНрдкрд╛рджрди
ExecStart = / opt / etherpad / bin / run.sh
рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ = рд╣рдореЗрд╢рд╛

[рдЗрдВрд╕реНрдЯреЙрд▓]
WantedBy = рдмрд╣реБ-user.target

рдЖрдкрдиреЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛? рдХреНрдпрд╛ рдЖрдкрдиреЗ git clone рдпрд╛ рдЖрдкрдиреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ .zip рдФрд░ unpack рд╣рдбрд╝рдк рд▓рд┐рдпрд╛?

рдЕрдиреБрд░реЛрдз URL: https://dev.com:9001/static/font/RobotoMono-Regular.ttf

jose<strong i="7">@server</strong>:~/develop$ locate RobotoMono | grep develop | grep Reg
/home/jose/develop/src/static/font/RobotoMono-Regular.ttf

рд╕рдм рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЧрд┐рдЯ рдХреНрд▓реЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдпрд╛ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ (рдПрдХ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджреНрд╡рд╛рд░рд╛) рдЬрд╝рд┐рдк рдЕрдирдкреИрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rsync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

рдЖрд╣, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЕрдВрддрд┐рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреЗ рдХреБрдЫ рд╣реИрдХ рд▓рдЧрд╛рдП? рдпрджрд┐ рдЖрдк git status рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ?

рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдПрдХ рддрд╛рдЬрд╛ рд░реЗрдкреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдкреА рдХрд░реЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдЬреАрдм рд╣реИ ..

рдореИрдВ рдЕрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рд╣рд╛рдБ, рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд╣реИ .. рдЬреИрд╕реЗ рдХрд┐ рдлреЛрдВрдЯ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдИрдерд░рдкреИрдб рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ

рдХреЛрдб рд╕рд╣реА btw рд╣реИред src / рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ ..

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреЗ рдХреБрдЫ рд╣реИрдХ рдХрд┐рдпрд╛ рдерд╛, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдВрддрд░ рдХреЛ рджреЗрдЦреЗред рдХреНрдпрд╛ рдЕрдм рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреЗ рдЧрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ (рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдерд╛), рдлрд┐рд░ рднреА рд╕рд╛рдл рдХреНрд▓реЛрди рдХреЗ рдмрд╛рдж рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@skramsa рд▓реБрд▓рд╡рд╛рдЯред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдл рдХреНрд▓реЛрди рдФрд░ рднрд╛рдЧреЛ рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? :! рдореБрдЭреЗ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдм рд╣реИ .. рд▓реЙрдЧ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА?

рдпрджрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдл рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдпрд╣ рддрдм рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ?

рдХреЛрдИ рднреА рдореМрдХрд╛ рдЖрдк рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдирд╣реАрдВ, рдпрд╣ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЗрдВрдЯреНрд░рд╛рдиреЗрдЯ рдкрд░ рд╣реИ .. рдиреЛрдб 6 рд╕реЗ 12 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ .. рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдбреАрдмрдЧ рд╕реНрдЯреЗрдкреНрд╕ рдпрд╣рд╛рдБ рд╣реИрдВ ..

рдПрдХрдорд╛рддреНрд░ рд╕реБрд░рд╛рдЧ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ редред
https://github.com/ether/etherpad-lite/blob/develop/src/node/utils/Minify.js#L429

рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдк рд╕рднреА рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рдл рд░рди рдмрдирд╛рддреЗ рд╣реИрдВред

рдЖрдкрдиреЗ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛, rm -Rf src/node_modules && rm src/package-lock.json рддрдм bin/run.sh рднрд╛рдЧ рд▓рд┐рдпрд╛? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рд╕рд╛рдл рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ;

рдЖрдкрдХрд╛ git sha , npm --version рдФрд░ nodejs version рдорд╛рди рдХреНрдпрд╛ рд╣реИ?

npm 6.14.4 рд╣реИ рдФрд░ рдиреЛрдб -v 12.16.2 рд╣реИред рдмреЗрд╡рдХреВрдл рд╕рд╡рд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдореЗрд░реЗ" рдЧрд┐рдЯ рд╢реЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдореИрдВрдиреЗ 1.6.2 рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЭреВрдареЗ рдХреА рддрд░рд╣ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдЗрдХрди рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ)ред рдпрд╣ рдПрдХ рд░рд╛рд╣рдд рдХреА рдмрд╛рдд рд╣реИ .. рдореИрдВ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдПрдХ рдФрд░ рд╕рд╛рдл рд╕реЗрдЯрдЕрдк рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд╢рд╛рдпрдж рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛: рдбреА рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !!

рдЕрдкрдиреЗ рдИрдерд░рдкреИрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ git rev-parse HEAD рдЯрд╛рдЗрдк рдХрд░реЗрдВ

рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкрд░ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВред

рдирдорд╕реНрддреЗ
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╣реВрдБред
рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдмрд╕ рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдФрд░ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ред
рддрд╛рдЬрд╛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдкрд░рдВрддреБ :
рджреВрд╕рд░реА рдУрд░, рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ, рдЬрдм рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ https рдХреЗ рдмрд┐рдирд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдЗрдХрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ !!

рдЕрдкрд╛рдЪреЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реА рддрд░рдл рд╕реЗ рдХреБрдЫ рднреА рд╡рд┐рджреЗрд╢реА рдирд╣реАрдВ рд╣реИред

рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (/ рдЗрдерд░рдкреИрдб) рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╕рд╣реА рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

<Location /static/font>
    ProxyPass http://localhost:9001/static/font
    ProxyPassReverse http://localhost:9001/static/font
</Location>

рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред jsonред

@skramsa рдиреЗ рдХрд┐рд╕реА рднреА рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рд╕реНрдХрд░реНрдорд╛ рдХреГрдкрдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ рд╣реИред

рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (/ рдЗрдерд░рдкреИрдб) рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╕рд╣реА рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

<Location /static/font>
    ProxyPass http://localhost:9001/static/font retry=0 timeout=30
    ProxyPassReverse http://localhost:9001/static/font
</Location>

рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред jsonред

рд░рд┐рдЯреНрд░реАрдЯ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд┐рдпрдо рдХреНрдпреЛрдВ?

@skramsa рдиреЗ рдХрд┐рд╕реА рднреА рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рд╕реНрдХрд░реНрдорд╛ рдХреГрдкрдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди @julpec рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;)

рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (/ рдЗрдерд░рдкреИрдб) рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╕рд╣реА рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

<Location /static/font>
    ProxyPass http://localhost:9001/static/font retry=0 timeout=30
    ProxyPassReverse http://localhost:9001/static/font
</Location>

рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред jsonред

рд░рд┐рдЯреНрд░реАрдЯ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд┐рдпрдо рдХреНрдпреЛрдВ?

рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд▓ рдХрд┐рдпрд╛ рдерд╛;)

@skramsa рдиреЗ рдХрд┐рд╕реА рднреА рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рд╕реНрдХрд░реНрдорд╛ рдХреГрдкрдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди @julpec рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;)

рдпрд╣ рдзрдиреНрдпрд╡рд╛рдж рд╣реИ

рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ :

рджреВрд╕рд░реА рдУрд░, рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ, рдЬрдм рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ https рдХреЗ рдмрд┐рдирд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдЗрдХрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ !!

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрдкрдиреЗ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдХреА рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдПрдереЗрд░рдкреИрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдпрд╣ рд▓реЙрдЧ рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИ:

[2020-04-29 10:43:29.440] [ERROR] console - table is not configured with charset utf8mb4 -- This may lead to crashes when certain characters are pasted in pads

рдЕрдЧрд░ рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдкрддрд╛ рдирд╣реАрдВ ...

рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ :

рджреВрд╕рд░реА рдУрд░, рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ, рдЬрдм рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ https рдХреЗ рдмрд┐рдирд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдЗрдХрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ !!

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрдкрдиреЗ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдХреА рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдПрдереЗрд░рдкреИрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдпрд╣ рд▓реЙрдЧ рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИ:

[2020-04-29 10:43:29.440] [ERROR] console - table is not configured with charset utf8mb4 -- This may lead to crashes when certain characters are pasted in pads
рдЕрдЧрд░ рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдкрддрд╛ рдирд╣реАрдВ ...

рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдВред рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА (рдЕрдкрд╛рдЪреЗ) рдХреЗ рдкреАрдЫреЗ рд╣реВрдВ рдФрд░ рдореИрдВ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рдирд╡реАрдирддрдо рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдПрдХ рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдЪрд┐рддреНрд░ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рд╣реИ):

$ docker image ls
REPOSITORY           TAG            IMAGE ID            CREATED             SIZE
etherpad/etherpad    latest         878d71df1b8e        44 hours ago        273MB

рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рджрд┐рдЦрддрд╛ рд╣реИред рдИрдерд░рдкреИрдб /pad/ рдиреАрдЪреЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлреЛрдВрдЯ /static/ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 404 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред

рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп @lucaguindani рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ /static/ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд░рд╛рд╕реНрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, ASAP рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░реЗрдЧрд╛ред рдЖрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред

рд░рд┐рд▓реАрдЬ рдХреЗ рд╣рдлреНрддреЗ рдХреЗ рдмрд╛рдж рд╣рдо рд╕рднреА рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

Nginx рдмрд╣реБрдд w / рд╡рд┐рдХреА рдХреЙрдиреНрдлрд┐рдЧрд░реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рд╡рд╣рд╛рдВ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ;;

image

image

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреБрдо рд▓реЛрдЧ рд╕рднреА рдПрдХ рдЕрдЬреАрдм рдЕрдкрд╛рдЪреЗ рдЧрд▓рдд-рд╡рд┐рдиреНрдпрд╛рд╕ / рдХреНрд╡рд┐рдХ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд╕рднреА рдХреЛ рдЕрдкрдиреА рдЕрдкрд╛рдЪреЗ рд╕рдмрдбрд┐рдЕрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓реА? рд╣рдо рд╡рд┐рдХрд┐ рдкрд░ рдПрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рд▓реЛрдЧ рджреБрд╖реНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ? : рдкреА

PS рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░рд┐рд▓реАрдЬ рд╣реИ рдФрд░ nginx config рд╣реИ:

server {
        listen       80;
        server_name  pad.example.com;

        access_log  /var/log/nginx/eplite.access.log;
        error_log   /var/log/nginx/eplite.error.log;

    location /pad {
        rewrite                /pad/(.*) /$1 break;
        rewrite                ^/pad$ /pad/ permanent;
        proxy_pass             http://localhost:9001/;
        proxy_pass_header Server;
        proxy_redirect         / /pad/;
        proxy_set_header       Host $host;
        proxy_buffering off;
    }

    location /pad/socket.io {
        rewrite /pad/socket.io/(.*) /socket.io/$1 break;
        proxy_pass http://localhost:9001/;
        proxy_redirect         / /pad/;
        proxy_set_header Host $host;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
        proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
        proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
        proxy_set_header Host $host;  # pass the host header
        proxy_http_version 1.1;  # recommended with keepalive connections
        # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    location /static {
        rewrite /static/(.*) /static/$1 break;
        proxy_pass http://localhost:9001/;
        proxy_set_header Host $host;
        proxy_buffering off;
    }

}

# we're in the http context here
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

рдореИрдВрдиреЗ рдиреЛрдЯрд┐рд╕ рдкрд░реАрдХреНрд╖рдг / рдлреНрд░рдВрдЯрдПрдВрдб / рдЗрдВрдбреЗрдХреНрд╕ред рдлреЗрд▓ рдХрд┐рдпрд╛ рдЬреЛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /pad/foo/p/blah рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдХреЛрдИ рдмрдЧ рдПрдерд░рдкреИрдб рдкрдХреНрд╖ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЪреАрдЬреЗрдВ рдареАрдХ рджрд┐рдЦрддреА рд╣реИрдВ ...

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдкрд╛рдЪреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рд░рд╣рд╛ рдореЗрд░рд╛:

<Location /pad/>
    Order allow,deny
    Allow from all
    Options All +MultiViews -ExecCGI
    AuthType Basic
    AuthName "authentification"
    AuthBasicProvider       ldap
    AuthLDAPURL "ldap://127.0.0.1:389/ou=****,dc=****,dc=****,dc=org"
    AuthLDAPGroupAttribute memberUid
    AuthLDAPGroupAttributeIsDN off
    require ldap-group cn=****,ou=***,dc=*****,dc=****,dc=org

    ProxyPass http://localhost:9002/ 
    ProxyPassReverse http://localhost:9002/
    RewriteEngine On
    RewriteCond %{LA-U:REMOTE_USER,NS} (.+)
    RewriteRule . - [E=RU:%1]
    RequestHeader add X-Forwarded-User %{RU}e
</Location>

рдПрдХ рдШрдВрдЯреЗ рдзрдиреНрдпрд╡рд╛рдж рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдЖрдЬ рд░рд╛рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреБрдо рд▓реЛрдЧ рд╕рднреА рдПрдХ рдЕрдЬреАрдм рдЕрдкрд╛рдЪреЗ рдЧрд▓рдд-рд╡рд┐рдиреНрдпрд╛рд╕ / рдХреНрд╡рд┐рдХ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд╕рднреА рдХреЛ рдЕрдкрдиреА рдЕрдкрд╛рдЪреЗ рд╕рдмрдбрд┐рдЕрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓реА? рд╣рдо рд╡рд┐рдХрд┐ рдкрд░ рдПрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рд▓реЛрдЧ рджреБрд╖реНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ? : рдкреА

рдпрд╣рд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреБрдо рд▓реЛрдЧ рд╕рднреА рдПрдХ рдЕрдЬреАрдм рдЕрдкрд╛рдЪреЗ рдЧрд▓рдд-рд╡рд┐рдиреНрдпрд╛рд╕ / рдХреНрд╡рд┐рдХ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд╕рднреА рдХреЛ рдЕрдкрдиреА рдЕрдкрд╛рдЪреЗ рд╕рдмрдбрд┐рдЕрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓реА? рд╣рдо рд╡рд┐рдХрд┐ рдкрд░ рдПрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рд▓реЛрдЧ рджреБрд╖реНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ? : рдкреА

рдпрд╣рд╛рдБ

рдореИрдВрдиреЗ рд╡рд╣рд╛рдБ рджреЗрдЦрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЕрдкрд╛рдЪреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрдбрд┐рд░ рдореЗрдВ рдПрдерд░рдкреИрдб рдбрд╛рд▓рдХрд░ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ ...

image

рдЕрдкрдиреЗ рд╕реНрдирд┐рдк рдХреЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

<VirtualHost *:81>
<Location /pad/>
    Order allow,deny
    Allow from all
    Options All +MultiViews -ExecCGI
    ProxyPass http://localhost:9001/
    ProxyPassReverse http://localhost:9001/
    RewriteEngine On
    RewriteCond %{LA-U:REMOTE_USER,NS} (.+)
    RewriteRule . - [E=RU:%1]
</Location>
</VirtualHost>

image

jose<strong i="5">@server</strong>:~/develop$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2020-03-13T12:26:16

рдореИрдВрдиреЗ рд╡рд╣рд╛рдБ рджреЗрдЦрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЕрдкрд╛рдЪреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрдбрд┐рд░ рдореЗрдВ рдПрдерд░рдкреИрдб рдбрд╛рд▓рдХрд░ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ ...

рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд▓реЛрдХреЗрд╢рди рдЯреИрдЧ рдореЗрдВ рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдЕрднреА рдФрд░ "рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛" рдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдЕрдкрдиреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж btw

рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд▓реЛрдХреЗрд╢рди рдЯреИрдЧ рдореЗрдВ рдЖрдк рдЬреЛ рдЪрд╛рд╣реЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдЕрднреА рдФрд░ "рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛" рдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдпрд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ ... рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрд╕рд▓реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ!
рдЕрдЪреНрдЫреА рдмрд╛рдд: +1:
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдпрд╣ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрд╛рдЪреЗ "рд╕рд┐рдВрдЧрд▓ рд╕рд╛рдЗрди-рдСрди" рдХреЗ рдкреАрдЫреЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВред
рдХреНрдпрд╛ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ "/" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдКрдкрд░ рд╕реЗ рдореЗрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдкреА / рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ...

рдореБрдЭреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдореИрдВ рдЕрднреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рдКрдкрд░ рд╕реЗ рдореЗрд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдкреА / рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ...

рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдЖрдЗрдХрди рдХрд╛ рдХреЛрдИ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ

рдЕрдкрд╛рдЪреЗ рд╕рдВрд╕реНрдХрд░рдг?

рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг: Apache / 2.4.38 (рдбреЗрдмрд┐рдпрди)
рд╕рд░реНрд╡рд░ рдирд┐рд░реНрдорд┐рдд: 2019-10-15T19: 53: 42

рдореИрдВрдиреЗ рддрддреНрд╡ рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪ рдХреА рдФрд░ рдпрд╣реА рд╡рд╣ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдлреЛрдВрдЯ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИ:

Request URL: https://example.org/static/font/RobotoMono-Regular.ttf

рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

Request URL: https://example.org/pad/static/font/RobotoMono-Regular.ttf

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ "рдкреИрдб" рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдирдП рдореЗрдЬрдмрд╛рди рдкрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХреАред

docker run --name etherpad -d \
    -e NODE_ENV=production -p 9001:9001 \
    --mount type=bind,src=/etc/localtime,dst=/etc/localtime \
    --restart=unless-stopped \
    etherpad/etherpad

рдореВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред

рдЕрдкрд╛рдЪреЗ рд╡рд┐рдиреНрдпрд╛рд╕:

<VirtualHost _default_:443>
    ServerName host
    <Proxy *>
        Require all granted
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass             /pad/     http://localhost:9001/
    ProxyPassReverse      /pad/     http://localhost:9001/
    SSLCertificateFile  /etc/apache2/ssl/host.example.com_cert_with_chain.pem
    SSLCertificateKeyFile /etc/apache2/ssl/host.example.com_sec_key.pem
    SSLCertificateChainFile /etc/apache2/ssl/chain.pem
</VirtualHost>

рдЕрдкрд╛рдЪреЗ рд╕рдВрд╕реНрдХрд░рдг 2.4.29 рд╣реИред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо:

image

рдЕрдЬреАрдмред рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ docker рдХреА рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЪреАрдЬреЗрдВ рдмрджрд▓рддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ

@ рдЬреЙрдирдореЗрдпрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рд╛рде рдареАрдХ рдЙрд╕реА рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдкреЛрд░реНрдЯ 81 рдкрд░, рдПрдХ рдЕрд▓рдЧ vhost рдореЗрдВ, рдЖрджрд┐ ... рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИред
рдореИрдВрдиреЗ рд╣рд░ рдмрд╛рд░ рдХреИрд╢ рдЦрд╛рд▓реА рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ:

node: v10.20.1
npm: 6.14.4
apache2: Apache/2.4.38 (Debian)
etherpad: 1.8.3 (6210114)

рдореЗрд░реЗ рд╕рд╛рде рднреА рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдкреНрд░реЙрдХреНрд╕реА (nginx) рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдЗрдХреЙрди рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ minify рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ clearRun.sh рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛, рдЖрдЗрдХрди рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдо рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рдпрд╣ minify рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛: рдпрд╣ рд╕рдЪ рд╣реИ рдФрд░ рдпрд╣ Nginx config рд╣реИред

server {
        listen          80;
        listen          443 ssl;
        include snippets/mortis2-ssl.conf;
        server_name     mortis2;
        location /pad/
        {
                #proxy_pass        http://localhost:9001/;
                proxy_set_header  Host $host;
                proxy_buffering   off;
        }
}

рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛, рдЬрдм рдореИрдВ @JohnMcLear рд╕реЗ nginx config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ , рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рддрднреА рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИ, рдЬрдм рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди (рдЬреИрд╕реЗ / рдкреИрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдирдЧреНрдиреЗрдХреНрд╕ рд╡рд┐рдиреНрдпрд╛рд╕:

server {
        listen          80;
        listen          443 ssl;
        include snippets/mortis2-ssl.conf;
        server_name     mortis2;
        location /pad/
        {
                rewrite                /pad/(.*) /$1 break;
                rewrite                ^/pad$ /pad/ permanent;
                proxy_pass        http://localhost:9001/;
                proxy_pass_header Server;
                proxy_set_header  Host $host;
                proxy_buffering   off;
        }

        location /pad/socket.io {
                rewrite /pad/socket.io/(.*) /socket.io/$1 break;
                proxy_pass http://localhost:9001/;
                proxy_redirect         / /pad/;
                proxy_set_header Host $host;
                proxy_buffering off;
                proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
                proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
                proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
                proxy_set_header Host $host;  # pass the host header
                proxy_http_version 1.1;  # recommended with keepalive connections
                # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
                proxy_set_header Upgrade $http_upgrade;
                #proxy_set_header Connection $connection_upgrade;
        }

        location /static {
                rewrite /static/(.*) /static/$1 break;
                proxy_pass http://localhost:9001/;
                proxy_set_header Host $host;
                proxy_buffering off;
        }
}

Op рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕рдЪ / рдЧрд▓рдд рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред Op рдиреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ .... рдЬрдм рдореИрдВ рдШрд░ рдЬрд╛рдКрдВрдЧрд╛ рддреЛ рдореИрдВ рдорд┐рдирд┐рдлрд╛рдИ рд╕рдЪ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдЗрд╕рдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реБрдИ рд╣реИред

https://github.com/ether/etherpad-lite/issues/3956#issuecomment -620476150 рдиреЗ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдХрд┐ minify false рдХреЛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛ рдФрд░ рдореБрдЭреЗ рдЦреБрдж рдХреЛ рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдЕрдЧрд░ рдРрд╕рд╛ рдерд╛ рддреЛ ..

* рдлреЗрд╕рдкрд╛рд▓рдоред

ASAP рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред

FWIW Nginx рднреА рдЗрд╕ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рд╕рднреА рдкреГрд╖реНрдареЛрдВ (рдкреИрдб, рдЗрдВрдбреЗрдХреНрд╕, рдЯрд╛рдЗрдорд▓рд╛рдЗрдбрд░ рдЖрджрд┐) рдкрд░ рдореМрдЬреВрдж рд╣реИред

рд╕рдорд╕реНрдпрд╛ clean-css рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╣реИред рд╕реАрдПрд╕рдПрд╕ 3 рд╕реЗ 4 рдиреЗ relativeTo рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдмрдЧ рдкреИрджрд╛ рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ rebase рдФрд░ rebaseTo рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛

https://github.com/JohnMcLear/etherpad-lite/commit/e684a3ba4129d1bae54e7b65a316a7d690217241 рдФрд░ рдПрдХ рдЕрд░реНрджреНрдз рдареАрдХ рд╣реИ рдФрд░ https://github.com/JohnMcLear/etherpad-lite/commit/a8c66b3b513b058e89f70b8e8d5ab622b33f167d рд╣реИрдХ defo рд╣реИред рдЪрд┐рд╣реНрди рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреИрдб рдЗрдВрдЯрд░реНрдирд▓реНрд╕ рдФрд░ рд╢рд╛рдпрдж рдЕрдиреНрдп рдорджреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝реЙрдиреНрдЯ рдЧрд▓рдд рд╣реИред

рдХреЛрдИ рд╕реБрдЭрд╛рд╡ @jakubpawlowicz @seballot ?

@ рдЬреЙрдиреНрдордХреНрд▓реЗрдпрд░ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, https://github.com/jakubpawlowicz/clean-css#how -to- apply- рдордирдорд╛рдирд╛-рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ-рд╕реАрдПрд╕рдПрд╕-рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ

рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓реАрди-рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЗрдирдкреБрдЯ рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ, https://github.com/jakubpawlowicz/clean-css/blob/master/test/module-test.jpg#L620 , рдЬреИрд╕реЗ рджреЗрдЦреЗрдВ

new CleanCSS().minify({"path/to/stylesheet/a.css": { styles: "/* source of a.css goes here */" }})

рдФрд░ rebaseTo рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдореИрдВ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВред

рд╕реМрднрд╛рдЧреНрдп!

рдмрдиреНрдж рд╣реИ ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ?

рдУрдкреА рдмрдВрдж ... рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рд╢реЛрд░ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ OP FWIW рдЖрдк рдЕрдирдлрд╝реЙрд▓реЛ рдпрд╛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдпрд╛ рдХреБрдЫ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдИрдУрдбрдмреНрд▓реНрдпреВ рджреНрд╡рд╛рд░рд╛ рдкреИрдЪ рдирд╣реАрдВ рдерд╛, рддреЛ рдореИрдВ рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреИрдЪ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╕рдордп рдкрд╛ рд╕рдХрддрд╛ рд╣реИред

@JohnMcLear рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ рдорджрдж рдХрд░рдиреЗ рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдХреМрд╢рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдиреЛрдбрдЬ рдореЗрдВ рднреА рдХрдо рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдореИрдВ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ...

рдЬрдм рдореИрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд▓рдВрдЧреЛрдЯ рдирд╣реАрдВ рдмрджрд▓рддреЗ;)

bump @seballot

рд╣рд╛рдп, рдпрд╣ рдПрдХ рдЦреЗрдж рдкрд░ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ ... рд╡рд╣рд╛рдБ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ?

  1. git рдХреНрд▓реЛрди develop
  2. minify рд╕реЗ true рдореБрдбрд╝реЗрдВ
  3. рдПрдерд░рдкреИрдб рдЪрд▓рд╛рдПрдВ рдФрд░ рдПрдХ рдкреИрдб рдкрд░ рдЬрд╛рдПрдВ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВ)
  4. nginx рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  5. рдиреАрдЪреЗ / / / nginx / рд╕рд╛рдЗрдЯреЛрдВ-рд╕рдХреНрд╖рдо / рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдкреА рдХрд░реЗрдВ
server {
        listen       80;
        server_name  pad.example.com;

        access_log  /var/log/nginx/eplite.access.log;
        error_log   /var/log/nginx/eplite.error.log;

    location /pad/foo {
        rewrite                /pad/foo/(.*) /$1 break;
        rewrite                ^/pad/foo$ /pad/foo permanent;
        proxy_pass             http://localhost:9001/;
        proxy_pass_header Server;
        proxy_redirect         / /pad/foo;
        proxy_set_header       Host $host;
        proxy_buffering off;
    }

    location /pad/foo/socket.io {
        rewrite /pad/foo/socket.io/(.*) /socket.io/$1 break;
        proxy_pass http://localhost:9001/;
        proxy_redirect         / /pad/foo/;
        proxy_set_header Host $host;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
        proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
        proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
        proxy_set_header Host $host;  # pass the host header
        proxy_http_version 1.1;  # recommended with keepalive connections
        # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    location /static {
        rewrite /static/(.*) /static/$1 break;
        proxy_pass http://localhost:9001/;
        proxy_set_header Host $host;
        proxy_buffering off;
    }

}

# we're in the http context here
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}
  1. рдирдЧреНрдиреЗрдХреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
    http://127.0.0.1 : 9001 / p / blah http://127.0.0.1/pad/foo/p/blah рдмрди рдЬрд╛рддрд╛ рд╣реИ
  2. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ http://127.0.0.1/pad/foo/p/blah рдЦреЛрд▓реЗрдВ
  3. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ iframe рдЖрдВрддрд░рд┐рдХ рдлреЛрдВрдЯ 404ред рдпрд╣ рд╕рд╣реА рдорд╛рд░реНрдЧ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ @import рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди cleanCSS рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ (рдареАрдХ рдЗрд╕реА рддрд░рд╣) рд╕реЗ ../../../ - рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рдкреИрдб рдФрд░ рдПрдбрд┐рдЯрд░ рдПрдХ рд╣реА @ font.css рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рджреЛрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреЗрд╕рдкреИрде рд╣реИрдВ? рддрдм рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╕реБрдВрджрд░ рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рдирд╣реАрдВ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

@seballot рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдорд┐рддреНрд░?

рдорд╛рдл рдХрд░рдирд╛, рдореБрдЭреЗ рдареАрдХ рдирд╣реАрдВ рд▓рдЧрд╛ ...

рдореБрдЭреЗ рди рддреЛ, CleanCSS рдХреБрдЫ рдЬрд╛рджреВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ (рдореИрдВ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд▓рдбрд╝рдХрд╛ рдирд╣реАрдВ рд╣реВрдВ) рдФрд░ рдореЗрд░реЗ рдХреЛрдИ рднреА рдЙрджрд╛рд╣рд░рдг рдЙрдкрдЦрдВрдбреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕реАрдПрд╕рд╕реА рдХреЗ рд╕рд╛рде рдХреНрд▓реАрдирд╕реАрдПрд╕рдПрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рд╕реАрдУ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд▓реАрдирд╕реАрдПрд╕рдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рдирдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред ред

рдореИрдВ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bumped рджреЗрд╡ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рд╣рдо рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдЕрдЪреНрдЫрд╛! рдЕрдЧрд░ рдпрд╣ csso рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рд╕реАрдПрд╕рдУ рдорд┐рдиреАрдлрд╛рдИ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди # рдкреЗрдЬ рд▓реЛрдб рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рдбреЙрдХреНрд╕ рдЖрджрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд▓реАрдирд╕реАрдПрд╕рдПрд╕ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд░рддрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рдИрдерд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ-рдЙрдкрдХреНрд░рдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  • Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрдерд░рдкреИрдб рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдФрд░ рдЬрдм рдореИрдВ рдбреЙрди / .bin /run.sh, рдФрд░ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рдкреЛрд░реНрдЯ 9001 рдХреЛ рдУрдкрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдЗрдХрди рдареАрдХ рд╕реЗ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдЬрдм рдореИрдВ рдЗрд╕реЗ nginx рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, (рдЬреЛ рдХрд┐ jitsi рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ), рддреЛ рдореБрдЭреЗ рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдорд╣рд╛рди рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред Settings.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдмрдбрд╝реЗ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИрдВред

рд╕рдорд╛рдзрд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рд░рд╛рдд рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ https://github.com/ether/etherpad-lite/issues/3956#issuecomment -625163151 рдореЗрдВ рдЬреЙрди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП nginx рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ Etherpad рдХреЗ рдХреЛрдб рджреЛрдиреЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдмрд╛рдж рдореЗрдВред

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА nginx рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ 2 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ /static рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореИрдВрдиреЗ рдХреЙрдкреА / рдкреЗрд╕реНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ cleanCSS рдХреЗ рднреАрддрд░ рдЧрд╣рд░реА рд╣реИ ...

рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдореБрджреНрджреЗ рд╣реИрдВред

  1. рдкрд░реАрдХреНрд╖рдг Nginx config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /static рд▓рд┐рдП рдЧрд▓рдд рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдерд╛ред рдкреВрд░реЗ location /static рдЕрдиреБрднрд╛рдЧ рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдереА - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - /static рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреНрдп рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рд╣реЛ рд░рд╣рд╛ рдерд╛ ред рд╕рдВрднрд╡рддрдГ рд╡рд╣ рдЗрд╕ рдПрдХ рдХреЗ рд╕рдорд╛рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЧреБрдорд░рд╛рд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;

    рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг (рд╡рд┐рдХреА? рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╣реАрдВ рдФрд░?) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред

  2. 4177b3f9434e рдиреЗ font-face рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ src/static/css/pad.css рд╕реЗ рджреЛ рдЖрдпрд╛рддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ ( src/static/css/pad/fonts.css рдФрд░ src/static/css/pad/toolbar.css ) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ src URL рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ ;

  3. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдЧрд╛рдореА 1.8.4 рдХреЗ рд▓рд┐рдП 95fd5ce2a45e рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреИрд╢ рд╕реНрдЯрд╛рд▓рд┐рд╕ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕реЗ рднреА рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП # 4002 рдЦреЛрд▓рд╛ рдЧрдпрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП @JohnMcLear рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

@skramsa , @julpec , @lucaguindani , @ashishhari (рдФрд░ John, рдЬрд╛рд╣рд┐рд░ рд╣реИ): рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реИ рдЬреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореИрдВ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ "/ рд╕реНрдерд┐рд░" рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ
рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореИрдВ рдПрдХ рдПрдбрдмреНрд▓реНрдпреВрд╕реА рдИрд╕реА 2 рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдЬреАрдЯрд╕реА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╡рд╣рд╛рдВ
рдПрдХ рдирдЧреАрдиреЗрдХреНрд╕ рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд┐рд╕реНрд╕реА рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдФрд░ рдиреЛрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдкреЛрд░реНрдЯ 9001 рдкрд░ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдИрдерд░рдкреИрдб рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдЕрдиреНрдп nginx рд╕реЗрдЯрд┐рдВрдЧ tweak рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? (рдореИрдВ рдирд╣реА
рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдареАрдХ рд╕реЗ рд╕рдордЭреЗрдВ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?), рдпрд╛ рдХреНрдпрд╛ рдореИрдВ
рдмрд╕ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

Thu рдкрд░, 14 рдордИ, 2020 рдХреЛ рд╕реБрдмрд╣ 6:07 рдмрдЬреЗ muxator рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдореБрджреНрджреЗ рд╣реИрдВред

1 рд╣реИред

рдкрд░реАрдХреНрд╖рдг Nginx config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧрд▓рдд / рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЗ рд▓рд┐рдП рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдерд╛ред
рд╕рдВрдкреВрд░реНрдг рд╕реНрдерд╛рди / рд╕реНрдерд┐рд░ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-625163151 ред
рдЗрди рджрд┐рдиреЛрдВ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рдИрдореЗрд▓ рддреВрдлрд╛рди рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╡рд╣ / рд╕реНрдереИрддрд┐рдХ рдмрд╣реБрдд рд╕реЗ рдЯрдХрд░рд╛ рд░рд╣рд╛ рдерд╛рдЕрдиреНрдп рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ ред рд╕рдВрднрд╡рддрдГ рд╡рд╣ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЧреБрдорд░рд╛рд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдпрд╣ рдПрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;

рдпрд╣ рдкреНрд░рд▓реЗрдЦрди (рд╡рд┐рдХреА) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ?
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреБрдЫ рдФрд░?) рдФрд░ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ ред
реиред

4177 рдмреА 3 рдПрдл
https://github.com/ether/etherpad-lite/commit/4177b3f9434e8516f8fe4f8e02b2a75ce5d64173
рдлрд╝реЙрдиреНрдЯ-рдЪреЗрд╣рд░реЗ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ src / static / css / pad.css рд╕реЗ рджреЛ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛
рдЖрдпрд╛рддрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ (src / static / css / pad / font.css рдФрд░
src / static / css / pad / toolbar.css) рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдФрд░ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ
src рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ
https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src ;
рейред

рдЙрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, 95fd5ce рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж
https://github.com/ether/etherpad-lite/commit/95fd5ce2a45e31980ad8c2562e3fe6f77c52d4ff
рдЖрдЧреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ 1.8.4 рдХреЗ рд▓рд┐рдП , рд╣рдореЗрдВ рдХреИрд╢ рд╕реНрдЯрд╛рд▓рд┐рд╕рд┐рдЯреА рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА
рдЙрд╕ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628317976 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AH7VXAS65ZUAR33CPKSI6OLRRM4KZANCNFSM4MSSRTRQ
ред

@skramsa , @julpec , @lucaguindani , @ashishhari (рдФрд░ John, рдЬрд╛рд╣рд┐рд░ рд╣реИ): рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реИ рдЬреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореИрдВ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ static рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИред

рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖред

рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдЕрдкрд╛рдЪреЗ рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рдЭреВрдареЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

Thu рдкрд░, 14 рдордИ, 2020 рдХреЛ рджреЛрдкрд╣рд░ 1:30 рдмрдЬреЗ julpec рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (рдФрд░ рдЬреЙрди, рдЬрд╛рд╣рд┐рд░ рд╣реИ): рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реИ
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреАрдЖрд░? рдореИрдВ
рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдХреА рддрд░рд╣ред

рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдереИрддрд┐рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ
рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдЕрдкрд╛рдЪреЗ рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рдЭреВрдареЗ рдФрд░ рд╕рдм рдХреБрдЫ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛
рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
ред

рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХреА -> рдорд┐рдереНрдпрд╛рдХрд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдирд╛ рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
(рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛)ред

Thu рдкрд░, 14 рдордИ, 2020 рдХреЛ рджреЛрдкрд╣рд░ 1:30 рдмрдЬреЗ julpec рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (рдФрд░ рдЬреЙрди, рдЬрд╛рд╣рд┐рд░ рд╣реИ): рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реИ
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреАрдЖрд░? рдореИрдВ
рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдХреА рддрд░рд╣ред

рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдереИрддрд┐рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЭреВрда рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ
рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдЕрдкрд╛рдЪреЗ рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рдЭреВрдареЗ рдФрд░ рд╕рдм рдХреБрдЫ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛
рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
ред

рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдЕрдкрд╛рдЪреЗ рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рдЭреВрдареЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХреА -> рдорд┐рдереНрдпрд╛рдХрд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдирд╛ рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@julpec , @ashishhari : minify = false рд╕реЗрдЯ рдХрд░рдирд╛ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╛рдзрд╛рди рд╣реИ ред
рдЖрд╢рд╛ рдЕрдм рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдХреНрдпрд╛ # 4002 рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм = рд╕рдЪ рд╣реЛред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧреА, рдпрд╣ рддрднреА рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рднреА рдЪрд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВ:

рдмрдЧ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ:

  • minify = true settings.json
  • рдИрдерд░рдкрдж рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ
  • Etherpad рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХрди рдирд╣реАрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ

рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

  • minify = true settings.json
  • # 4002 рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рдЗрд╕реЗ рдХреЗрд╡рд▓ рддрднреА рдХрд░реЗрдВ рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реЛрдВ)
  • рдПрдерд░рдкреИрдб рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ
  • Etherpad рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЯреВрд▓рдмрд╛рд░ рдЖрдЗрдХрди рдЕрдм рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ

рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреАрдЖрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдкрддрд╛ :(

рдзрдиреНрдпрд╡рд╛рдж @muxator рдореИрдВ рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред

рдЕрд░реЗ рд╡рд╛рд╣ рдореИрдВ рдЙрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрднреА рдирд╣реАрдВ рдЖрдпрд╛ рд╣реЛрдЧрд╛! рд╡рд╣ рддреЛ рджрд▓рд╛рд▓ рд╣реИред

git remote add mux https://github.com/muxator/etherpad-lite/
git fetch mux
git checkout mux/fix/fonts-behind-reverse-proxy

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ..

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж git checkout develop рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдк muxs рдХреА рдмрд╛рд╕реА рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реЛрдВрдЧреЗ

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЖрдЬ рджреЛрдкрд╣рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛

рд╣реНрдо рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд╛рдлреА рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рд╣реИ @muxator .. рдореИрдВ ~ 54 рдЕрдиреБрд░реЛрдз рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдмрдирд╛рдо ~ 49 (рд╡рд░реНрддрдорд╛рди develop ) - рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрд░реЛрдз рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рддреЛ рдпрд╣ рдкреАрдЖрд░ рдПрдХ рдкреГрд╖реНрда рд▓реЛрдб рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ / рдЕрд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп IMHO рдирд╣реАрдВ рд╣реИред

image

рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ ... :( рдпрд╣ рдбрд┐рдлреЛ рдкреНрд░рдЧрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреБрд░реЛрдз рд╡рд╣ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди iframe рд╕реЗ рдХрдИ рдЕрдиреБрд░реЛрдз рдЖрддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдореБрдЦреНрдп рдкреГрд╖реНрда рдФрд░ рд╕рдВрдкрд╛рджрдХ iframe рдХреЛ рдлрд╝реЙрдиреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ?

afaik cleanCSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ @seballot

рдпрд╣ рд╣рдореЗрд╢рд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рд╣рд╛рдВ, рд╣рдореЗрд╢рд╛ рд╕реЗ рдпрд╣реА рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реАрдПрд╕рдПрд╕ рдЖрдВрд╢рд┐рдХ (рдкреИрдб / popups.css, рдкреИрдб / editbar.css, рдкреИрдб / chat.css ...) рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП cleanCss рдЕрдзрд┐рдХ рдерд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдПрдХ рдкреИрдб рд▓реЛрдб рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди iframe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ iframe рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рд╢реЗрдпрд░ рдХреЛ рджреЛ рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдХреЙрд▓ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ ("рдХреИрд╢ рд╕реЗ рд▓реЛрдб") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореИрдВрдиреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЕрдкрд╛рдЪреЗ рдХреЗ рд╕рд╛рде)

рд╕рд╛рднрд╛рд░ @julpec

рдЖрдЬ рд╢рд╛рдо рдореИрдВ @JohnMcLear рдЪрд┐рдВрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ # рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ tnx mux

Github рдореЗрдВ рдХрд╣реАрдВ рдХрд╣реАрдВ HAR рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВрдиреЗ # 4002 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡:

  • http: // localhost : 9001 / p / ciao рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛
  • рдХреЛрдИ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ
  • рдЙрддреНрдкрд╛рджрди рдореЛрдб: рдЭреВрдард╛
  • рдЦрд╛рд▓реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ

рдЪрд░:

  • рд╕рдВрд╕реНрдХрд░рдг: 4816785aef45 рдмрдирд╛рдо # 4002
  • рдХреИрд╢: рдардВрдбрд╛ ( рдкрд╣рд▓рд╛ рд▓реЛрдб ) рдмрдирд╛рдо рдЧрд░реНрдо (> = 2 рд▓реЛрдб )
  • рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░реЗрдВ: рд╕рддреНрдп рдмрдирд╛рдо рдЕрд╕рддреНрдп
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдХреНрд░реЛрдорд┐рдпрдо 81 рдмрдирд╛рдо рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 76

рдпреЗ рдЪрд╛рд░ рдмрд╛рдЗрдирд░реА рдЪрд░ рд╣реИрдВ -> 2 ^ 4 = 16 рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ ред
рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛!

рдпрд╣рд╛рдБ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдорд▓реЗ рд╣реИрдВ:
| рд╡рд┐рд╡рд░рдг | рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд╛рд╕ (4816785aef45) | рдкреАрдЖрд░ # 4002 |
| ---- | ---- | ---- ---- |
| рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдЫреЛрдЯрд╛, рдкрд╣рд▓рд╛ рд▓реЛрдб | 34 рдЕрдиреБрд░реЛрдз
1,61 рдПрдордмреА
1.61 рдПрдордмреА рддрдмрд╛рджрд▓рд╛ | 36 рдирд┐рд╡реЗрджрди
1,61 рдПрдордмреА
1.53 рдПрдордмреА рддрдмрд╛рджрд▓рд╛ |
| рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдЫреЛрдЯрд╛, рдЧрд░реНрдо рдХреИрд╢ | 29 рдирд┐рд╡реЗрджрди
1,12 рдПрдордмреА
216 KB рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд | 31 рдирд┐рд╡реЗрджрди
1,18 рдПрдордмреА
216 KB рддрдмрд╛рджрд▓рд╛ |
| рдХреНрд░реЛрдорд┐рдпрдо, рдЫреЛрдЯрд╛, рдкрд╣рд▓рд╛ рд▓реЛрдб | 44 рдЕрдиреБрд░реЛрдз
2,0 рдПрдордмреА
1,5 рдПрдордмреА рддрдмрд╛рджрд▓рд╛ | 109 рд╕рдмрд╕реЗ рдЕрдореАрд░
3,0 рдПрдордмреА
1,1 рдПрдордмреА рддрдмрд╛рджрд▓рд╛ |
| рдХреНрд░реЛрдорд┐рдпрдо, рдорд┐рдиреАрдлрд╛рдЗрдб, рд╣реЙрдЯ рдХреИрд╢ | 45 рдЕрдиреБрд░реЛрдз
2,2 рдПрдордмреА
5,7 KB рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд | 129 рдЕрдиреБрд░реЛрдз
4,7 рдПрдордмреА
4,7 KB рддрдмрд╛рджрд▓рд╛ |

рдЖрдзрд╛рд░ - рд░реЗрдЦрд╛ рд╣реИ рдХреА:

  • рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдЙрдирдХреЗ рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдорд╛рдкрдиреЗ рдХрд╛ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рд╣реИ
  • PR # 4002 рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ
  • рдХреИрд╢ рд╣рд┐рдЯ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ : рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреЙрд▓рдо рдШрдЯрддрд╛ рд╣реИ!
  • рд▓реЛрдб рд╕рдордп рдПрдХ рдЬреИрд╕рд╛ рд░рд╣рддрд╛ рд╣реИ, рдорд╛рдк рд╢реЛрд░ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░

рдпреЗ рдореЗрд░реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рднреА рдереЗ, рдореИрдВрдиреЗ рдкреЗрдЬ рд▓реЛрдб рд╕реНрдкреАрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ (рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рд╕реЗ рдкрд░реЗ) рдкрд░ рд╢реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдордп рд▓рд┐рдпрд╛ рдФрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдЧрд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдореБрдЭреЗ рдПрдХ рдорддрд▓рдм рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд▓рди рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рдереЗ, рддреЛ рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреБрдХреНрдд рдереЗред

рдХреБрд▓ рдЕрдВрддрд░рдг рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд▓рдВрдм рдХреЗ рдХрд╛рд░рдг http рдЕрдиреБрд░реЛрдз рдУрд╡рд░рд╣реЗрдб рдорд╣рдВрдЧрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЬрдм рд╣рдо рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗ (рдЬреЛ рдЗрдирд▓рд╛рдЗрди рдЬреЗрдПрд╕ рдХреЗ рдХрд╛рд░рдг рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдВрддрддрдГ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА) рддреЛ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕реБрдзрд╛рд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рднреА рдЪреАрдЬреЛрдВ рдиреЗ рдХрд╣рд╛, рдЗрдерд░рдкреИрдб, htis рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдорд╣рд╛рди рд╣реИ, рдЕрдкрд╡рд╛рдж Google рдбреЙрдХреНрд╕ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓реЗ "рдПрдбрд┐рдЯрд┐рдВрдЧ рдЯрд╛рдЗрдо" рдХреЗ рд▓рд┐рдП рд╕реЛрдиреЗ рдХрд╛ рдорд╛рдирдХ рд╣реИ рдЬреЛ рдЗрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╛рдЬрд╛ рд╣реИ, рдкреЗрдЬ 'рд▓реЛрдб' рдХрд╛ рдЕрдВрдд рдирд╣реАрдВ рд╣реИред

рддреЛ TLDR; рдорд░реНрдЬ рджреВрд░ рдХрд░реЗрдВ @muxator - рдпрд╣ рдзрд╛рдЧрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдЬреЛ

рдЕрдЪреНрдЫрд╛ рдХрд╛рд░реНрдп !

+1 tnx!

: +1:

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alekso87 picture alekso87  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rmader picture rmader  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

muxator picture muxator  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

YSelfTool picture YSelfTool  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Unifex picture Unifex  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ