Code Monkey home page Code Monkey logo

webone's Introduction

WebOne

This is a HTTP 1.x proxy server that makes old web browsers, media players and messengers usable again in the Web 2.0 world.

The proxy is an adapter between the modern Web and old software. It is designed to run on an modern PC in same network with older computers.

WebOne HTTP Proxy Server is working by default on port 8080 and is compatible even with Netscape Navigator 3. Set IP address or hostname of PC with WebOne as HTTP/HTTPS/FTP proxy server (or set http://proxyhost:port/auto.pac as Automatic proxy configuration URL) in old browser's settings and begin WWW surfing again. There also is alternative mode (http://proxyhost:port/http://domain/filename.ext) for browsers that cannot work with proxies.

The program's settings are in the webone.conf file (but any other file name can be used too).

See WebOne wiki for complete list of features and full documentation.

Server prerequisites

Windows 7 (2008 R2) SP1+ / Linux / macOS and .NET 6.0 Runtime are required on server PC. See .NET 6.0 System Requirements.

Image and video converting

  • Picture format converting is performing via convert utility from ImageMagick (bundled with WebOne).
  • To watch YouTube.com videos through proxy, install ffmpeg together with yt-dlp (included in win-x64.full zips, and can be installed manually on Linux/macOS).

Install

Manuals about how to set up a WebOne proxy on Windows / Linux / macOS servers are in the Wiki.

Run

  • On Windows simply run webone.exe. Then open port 8080 in Windows Firewall settings.

  • On Linux the proxy is installing as a service, so it can be configured via regular service management commands:

    $ sudo service webone start
    or
    $ sudo systemctl start webone
    

    Other service commands, such as start/stop/restart/status/enable/disable, also work.

  • On macOS launch webone from Terminal, as the application is not signed for developer verification.

    $ ./webone				(simply)
    $ ./webone 5170				(start on specific port, e.g. 5170)
    $ sudo ./webone 80			(if port is less than 1024, root rights are need)
    $ ./webone /some/folder/myconfig.conf	(to use specific configuration file instead of default)
    $ dotnet webone.dll			(alternative way)
    

    These commands also can be used on Linux when systemd service is disabled.

  • Tip: you may store your own configuration in /etc/webone.conf.d/ directory. It will override webone.conf settings and will not be overwritten on package updates.

Working of WebOne can be checked via web browser by opening http://proxyhost:port/.

Note that this app is not intended for daily use, as removing any encryption from web traffic and use of really old and unsupported browser may cause security problems.

The server can be started even on public hosts. But don't forget to enable password protection in config file to make the proxy non-public.

Build

Latest source code can be always found in the master () and the dev branches of the Git repository.

The program is built using Microsoft .NET 6.0 SDK and dotnet-packaging add-on. With them the building is easy on all platforms: use dotnet publish & dotnet deb || dotnet rpm || dotnet zip tools.

Windows developers can utilize build.bat script for cross-platform building. And there is similar build.sh script for Linux and macOS environments.

Feedback

Any questions can be written on official VOGONS thread, phantom.sannata.ru thread, and GitHub Issues and Discussions tabs.

Who are the author(s)?

Currently the project is maintained mostly by a single person, Alexander Tauenis (ATauenis). Also thanks to contributors who made pull requests and bug reports.

How to help the project

WebOne project welcomes any help in the development. Forks, Pull Requests, and Bug Reports are welcome.

Even if you don't know C#, but have skills on HTML/CSS/JS development, it's possible to help with creating web traffic edits.

Описание по-русски

WebOne - прокси-сервер HTTP (HTTPS), позволяющий открывать современные сайты на старых браузерах. Своеобразный переходник между реальным Web 2.0 и историческим Web 1.0. Работает по принципу MITM.

Он имеет следующие функции:

  • Снятие шифрования HTTPS и двухстороннее преобразование HTTPS 1.1 <-> HTTP 1.0.
  • Перекодировка шифров HTTPS в более старые (при необходимости).
  • Замена кодировки в ответах серверов на любую, включая транслит.
  • Подмена отдельных файлов (например, новых тяжёлых JS-фреймворков на более старые и лёгкие).
  • Корректирование частей текстового трафика (например, патчинг JS или XML/CDF/RSS).
  • Конвертация или пережатие графических и видеофайлов "на лету" (используя внешние конвертеры).
  • Переадресация с несуществующих адресов на Web Archive.
  • Скачивание и конвертация видео с YouTube для воспроизведения на старых ПК в браузере.
  • Клиент FTP для обращения к таким серверам через браузер.

Этот прокси-сервер необходимо запускать на любом современном ПК с Microsoft .NET 6.0 Runtime, IP адрес которого указывается в настройках устаревшего веб-обозревателя. Порт по умолчанию 8080, тип прокси HTTP 1.0. Доступен файл автоматической настройки: http://proxyhost:port/auto.pac .

Настройки прокси-сервера хранятся в файле webone.conf или любом другом в одном из следующих мест:

  • Каталог программы.
  • /etc/webone.conf (/etc/webone.conf.d/*.conf)
  • ~/.config/webone/webone.conf
  • ~/Library/Application Support/WebOne/webone.conf
  • /Library/Application Support/WebOne/webone.conf
  • C:\Users\username\AppData\Roaming\WebOne\webone.conf
  • C:\ProgramData\WebOne\webone.conf (C:\ProgramData\WebOne\*.conf)
  • Указанный в аргументе при запуске через webone PATH\FILENAME.EXT.

Файл протокола (webone.log) по умолчанию сохраняется по адресу /var/log/webone.log, или C:\Users\username\AppData\Roaming\webone.log, или ~/Library/Logs/webone.log.

На Linux используются конвертеры из пакетов imagemagick (convert) и ffmpeg. В Windows-версии прилагается конвертер convert, а в Full-версии дополнительно имеются ffmpeg и yt-dlp.

Проект открыт для всех желающих присоединиться к разработке. Автор и основатель проекта: Александр Тауенис (ATauenis).

Подробная документация (на английском) в wiki проекта.

Обсуждение на phantom.sannata.ru.

webone's People

Contributors

atauenis avatar way5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webone's Issues

Cannot install deb/rpm packages on ARM

Reported by James Gryphon @ VOGONS.
https://www.vogons.org/viewtopic.php?p=864752#p864752

Got a Raspberry Pi 4, with the hope of using it as a WebOne helper for my G4. The Raspberry-specific section of the guide, unfortunately, didn't work out. dotnet-runtime-3.1 is apparently not included in Raspbian/"Raspberry Pi OS"'s repositories, and it's a prerequisite for the .deb, so.

However, I tried the process described for 'Manual Installations'. You have to use the newest ARM version of dotnet-runtime, swapping in 'arm' instead of the x64, of course, like so: "dotnet-runtime-3.1.5-linux-arm.tar.gz". I stumbled over steps 4 and 5, but figured out that the 'WebOne.0.10.2.win-arm.zip' package works for this. The rest of the steps work without much incident, and I was able to get it up and running.


Need to change linux-arm.deb & linux-arm.rpm packages of WebOne to be self-contained and don't require dotnet-runtime-3.1 package. Regular x64 packages should not be changed (still have dependency on external .NET Core Runtime).

Sometimes cannot download source PNGs to convert

Particular pictures cannot be converted from PNG to GIF. Probably they're are from servers with difficult encryption.

Log with conversion enabled:

10:43:04.311+0  >GET http://en.wikipedia.org/static/images/poweredby_mediawiki_8
8x31.png
10:43:04.311+10000       Begin process.
10:43:04.311+30001      >Downloading content...
10:43:04.311+40002       Willfully secure request.
10:43:04.311+6360363     200 OK. Body 1K of image/png [Need to convert].
10:43:04.311+6370364    <Return code 302.
10:43:04.311+6460369     Destruct HTTPC.
10:43:04.959             Got a request.
10:43:04.959+0  >GET http://192.168.1.68:80/!convert/?url=https%3A%2F%2Fen.wikipedia.o
rg%3A80%2Fstatic%2Fimages%2Fpoweredby_mediawiki_88x31.png&dest=gif&type=image/gi
f
10:43:04.959+10001       Begin process.
10:43:04.311+6500371     End process.
10:43:04.311+6510372    <Done.
10:43:04.959+30002       Internal: /!convert/?url=https%3A%2F%2Fen.wikipedia.org
%3A80%2Fstatic%2Fimages%2Fpoweredby_mediawiki_88x31.png&dest=gif&type=image/gif

10:43:04.959+50003      >Downloading source...
10:43:04.959+51162927    Destruct HTTPC.
10:43:04.959+51162927    Can't download source: The SSL connection could not be
established, see inner exception..
10:43:04.959+51172927   <Return code 500.
10:43:04.959+51302935   <Done.

The error message:

500 InternalServerError

Cannot download:
System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. 
---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream. 
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest) 
--- End of stack trace from previous location where exception was thrown --- 
at System.Net.Security.SslStream.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 
at System.Net.Security.SslStream.EndProcessAuthentication(IAsyncResult result) 
at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 
at System.Net.Security.SslStream.<>c.b__65_1(IAsyncResult iar) 
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean
requiresSynchronization) 
--- End of stack trace from previous location where exception was thrown --- 
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken
cancellationToken) 
--- End of inner exception stack trace --- 
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken
cancellationToken) 
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken) 
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken
cancellationToken) 
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean
disposeCts) 
at System.Net.HttpWebRequest.SendRequest() 
at System.Net.HttpWebRequest.GetResponse()

WebOne Proxy Server 0.10.0.0
on Microsoft Windows NT 6.1.7601 Service Pack 1

This appear on both Win7 and Ubuntu 18.04.
It first appear in 0.9.x series, and still present in 0.10a1.

If I disable converting, the source is downloading correctly:

10:49:30.869             Got a request.
10:49:30.869+20001      >GET http://en.wikipedia.org/static/images/poweredby_med
iawiki_88x31.png
10:49:30.869+200012      Begin process.
10:49:30.869+360021     >Downloading content...
10:49:30.869+28421626    301 Moved. Body 0K of  [Binary].
10:49:30.869+28421626    Body maked.
10:49:30.869+28421626   >Reload secure...
10:49:30.869+28421626   >Downloading content...
10:49:30.869+31321792    200 OK. Body 1K of image/png [Binary].
10:49:30.869+31321792    Body maked.
10:49:30.869+31371795    Document sent.
10:49:30.869+31371795    Destruct HTTPC.
10:49:30.869+31371795    End process.
10:49:30.869+31371795   <Done.

or on second attempt

10:57:32.424             Got a request.
10:57:32.424+20001      >GET http://en.wikipedia.org/static/images/poweredby_med
iawiki_88x31.png
10:57:32.424+20001       Begin process.
10:57:32.424+80004      >Downloading content...
10:57:32.424+80004       Willfully secure request.
10:57:32.424+27291561    200 OK. Body 1K of image/png [Binary].
10:57:32.424+27301561    Body maked.
10:57:32.424+27311562    Document sent.
10:57:32.424+27311562    Destruct HTTPC.
10:57:32.424+27311562    End process.
10:57:32.424+27311562   <Done.

Incompatibility with Windows Legacy Update

What's happen?

When using WebOne together with Legacy Update on Windows 2000/XP (at least), updates are finding, but does not installing. Direct connection still working perfectly.

Looking into %windir%\WindowsUpdate.log:

2022-11-29	11:30:33:527	 660	328	DnldMgr	***********  DnldMgr: New download job [UpdateId = {358C9385-719C-4911-939E-C472292F2C2F}.103]  ***********
2022-11-29	11:30:33:527	 660	328	DnldMgr	  * Queueing update for download handler request generation.
2022-11-29	11:30:33:527	 660	328	DnldMgr	Generating download request for update {358C9385-719C-4911-939E-C472292F2C2F}.103
2022-11-29	11:30:33:527	 660	328	DnldMgr	Asking handler to generate non-range requests.
2022-11-29	11:30:33:527	 660	328	Handler	Windows Patch download for UpdateId = {358C9385-719C-4911-939E-C472292F2C2F}: selected action is download full-file.
2022-11-29	11:30:33:527	 660	328	DnldMgr	***********  DnldMgr: New download job [UpdateId = {358C9385-719C-4911-939E-C472292F2C2F}.103]  ***********
2022-11-29	11:30:33:536	 660	328	DnldMgr	  * BITS job initialized, JobId = {9F91AEE5-014B-4ED3-AD49-FE8DF5F63F41}
2022-11-29	11:30:33:536	 660	328	DnldMgr	BITS job {9F91AEE5-014B-4ED3-AD49-FE8DF5F63F41} using proxy = ivybridge:8080, bypass = <NULL>
2022-11-29	11:30:33:536	 660	328	DnldMgr	  * Downloading from http://download.windowsupdate.com/msdownload/update/software/secu/2008/12/windows2000-windowsmedia-kb952069-x86-rus_bc19f55e800b1b27b59bbd780c09e4a60cef736c.exe to C:\WINNT\SoftwareDistribution\Download\b039b8e48b5883b47e56a13825d47e9a\Windows2000-WindowsMedia-KB952069-x86-RUS.exe (full file).
2022-11-29	11:30:33:620	 660	500	DnldMgr	WARNING: BITS job {9F91AEE5-014B-4ED3-AD49-FE8DF5F63F41} failed, updateId = {358C9385-719C-4911-939E-C472292F2C2F}.103, hr = 0x80200011, BG_ERROR_CONTEXT = 5
2022-11-29	11:30:33:620	 660	500	DnldMgr	  Progress failure bytes total = 0, bytes transferred = 0
2022-11-29	11:30:33:620	 660	500	DnldMgr	  Failed job file: URL = http://download.windowsupdate.com/msdownload/update/software/secu/2008/12/windows2000-windowsmedia-kb952069-x86-rus_bc19f55e800b1b27b59bbd780c09e4a60cef736c.exe, local path = C:\WINNT\SoftwareDistribution\Download\b039b8e48b5883b47e56a13825d47e9a\Windows2000-WindowsMedia-KB952069-x86-RUS.exe
2022-11-29	11:30:33:628	 660	500	DnldMgr	WARNING: Download job failed because of insufficient range support.
2022-11-29	11:30:33:628	 660	500	DnldMgr	Error 0x80200011 occurred while downloading update; notifying dependent calls.

In WebOne log the files are starting to download, but download stops quickly after beginning, because client aborted the transfer.

The problem is 0x80200011 (The server did not return the file size. BITS only transfers static content and requires the HTTP server to return the Content-Length header. The transfer request fails if the URL points to dynamic content. 🔗 ).

Somewhy BITS service don't see Content-Legth HTTP header. By manual opening even in old MSIE, the files are downloading correctly.

I don't know if this a bug, because Microsoft saying that this is correct when using proxies: https://answers.microsoft.com/ru-ru/windows/forum/all/%D0%BD%D0%B5-%D0%BC%D0%BE%D0%B3%D1%83/15cfee6a-a978-423b-bfb2-b6be7c155e69 . 😃

In most of I've googled, guys saying that "don't use proxies for WU/WSUS", and only. But in one site there is a hint about reason of the problem: https://web.archive.org/web/20120506031042/http://forums.techarena.in/server-update-service/658623.htm :

12-01-2007
Lawrence Garvin (MVP)
Re: BITS update is failing
"Bill" [email protected] wrote in message
news:[email protected]...

The BITS update started failing around the first of the year. NO system
changes have ocurred recently that would have affected this. There have
been
no WSUS server changes and no proxy server changes. I get errors in the
Windows Update log that indicate an error code of 0x80200011 "Insufficient
Range Support". Below is a sampling of the log. Any ideas???

2007-01-11 16:08:03 1392 b9c DnldMgr WARNING: Download job failed because
of
insufficient range support.

This is most likely an issue with an intervening proxy server and/or
firewall that's not properly implementing HTTP v1.1 protocol support. And,
even though you've said there have been no proxy server changes, that /is/
the place to start looking.

--
Lawrence Garvin, M.S., MCTS, MVP-Software Distribution

12-01-2007
Bill
RE: BITS update is failing
That was it. I checked the HTTP 1.1 setting for the proxy server in IE
Advanced settings and it works now.

And, yeah, WebOne is currently a HTTP 1.0 proxy. May be this is the reason of current incompatibility.

Workaround:
Disable WebOne when using Legacy Update (Windows Update).

What's next?
Try to modify WebOne to return HTTP/1.1 responses. If not successful, made proxy bypass for download.windowsupdate.com.

On-fly converter error (...) Exec format error

Using the youtube-converter script fails for me, with the error message being:

On-fly converter error: An error occurred trying to start process '/usr/share/webone/yt.sh' with working directory '/'. Exec format error

OS is RHEL 9.0, ImageMagick conversion does work fine, and calling the yt.sh script directly with the YT link works.
SELinux does not report any issues related to WebOne either.

The error message suggest the DotNet library doesn't realize yt.sh is a shell script, and is trying to execute it as a binary application, which fails.

Make a Docker build

Hi - This is a really interesting project and I was wondering if this is something that would run on docker on Unraid? You may be able to help people with extra older devices in the house if you consider building a docker container for unraid.

Wikipedia bugs in Opera 8.54 and Netscape 4.80

Why, after applying the following patch in the webone.conf file, the Opera 8.54 and Netscape 4.80 browsers stop opening Wikipedia (Russian and English)?:

; murder JS & CSS files
[Edit:http://[a-z]*.wiki[a-z]*.[a-z]*/w/load.php]
AddRedirect=about:blank

; murder inline CSS
[Edit:http://[a-z]*.wiki[a-z]*.[a-z]*/]
AddFind=<style data-mw-deduplicate=[a-zA-Z0-9=":\.;\-\+ {}()#,%@/_>]*</style>
AddReplace=<!--Wikipedia CSS removed-->

In Opera 8.54, the page loads endlessly. And in Netscape 4.80, when I open Wikipedia, I am redirected to the about:blank page.

It is necessary to develop an NPAPI plugins to replace browser engines

Hello! You can develop NPAPI plugins for older browsers (Mozilla Firefox 1.0-52.9, SeaMonkey 1.0-2.49.5, Opera Presto 8.54-12.18, Google Chrome 1.0-49.0, etc) on Windows XP and above, allowing you to open modern sites with modern web standards and encryption protocols by replacing old engines to more modern engines? The fact is that the WebOne proxy server works on Windows 7 SP1 only after installing support for ESU updates, and also does not open some modern sites, in some cases causing crashes of old browsers. Thanks in advance.

Posibility to DDoS the proxy server

If a host with WebOne have two or more DNS names (e.g. a.example.com and b.example.com with same IP), it is vunerable to DDoS attack. So if proxy is set up as a.example.com:8080, any attempt to open "http://b.example.com:8088/" will cause a "Timeout" error since a minute of wait and much tens of background requests to self (visible in log and in "Pending requests" field of status page) resulting in 100% CPU load and approx. 600 MB of eaten RAM on server.

The good news is that WebOne frees the RAM after the "attack" is end.

SSL failed

Try site: http://tikr.com/

Says:

Cannot load this page

The SSL connection could not be established, see inner exception. Authentication failed, see inner exception.

The message received was unexpected or badly formatted.
Kind of error: System.Net.Http.HttpRequestException
URL: https://tikr.com/
WebOne Proxy Server 0.11.0.0
on Microsoft Windows NT 6.1.7601 Service Pack 1

Console:

12.06.2021 00:28:51.582+0       >GET http://tikr.com/ (127.0.0.1)
12.06.2021 00:28:51.582+337500  >Downloading content...
12.06.2021 00:28:51.582+800000   308 PermanentRedirect. Body 0K of text/html [Text].
12.06.2021 00:28:51.582+800000  >Reload secure...
12.06.2021 00:28:51.582+800000  >Downloading content...
12.06.2021 00:28:51.582+1175000  Cannot load this page: UnknownError.
12.06.2021 00:28:51.582+1175000 <Return information page: WebOne: UnknownError.
12.06.2021 00:28:51.582+1175000 <Done.
12.06.2021 00:27:14.821+500577500        Cannot load this page: Timeout.
12.06.2021 00:27:14.821+500577500       <Return information page: WebOne: Timeout.
12.06.2021 00:27:14.821+500577500       <Done.
12.06.2021 00:27:14.812+500622500        Cannot load this page: Timeout.
12.06.2021 00:27:14.812+500622500       <Return information page: WebOne: Timeout.
12.06.2021 00:27:14.812+500647500       <Done.


"Idle process killed" error when converting to GIF

I am getting that error when converting PNG / JPG image formats to GIF (Windows version).
I have simply added the Amiga IBrowse browser User-Agent (OnHeader = User-Agent: IBrowse / 2.4) in the section to convert PNG / WebP to GIF from the configuration file.
The first conversion seems to work, but the subsequent ones fail ("Idle process killed" and incomplete images sent to the Amiga).

I don't know if it's a problem with the "convert.exe" utility. I have been trying other solutions (other converters and scripts) but I get other errors like file not found (converted image). It gives the impression that the converted file is deleted before being sent to the client or may be I doing something wrong.

Thanks for your effort!
I hope this interesting project continues to move forward.

ARM64 Linux Builds?

For some ARM64 server distributions that DO NOT support ARMv7 executables, is there any plan for supporting native ARM64 builds?

Infinite loop on http://[::1]:8080/

On attempt to open http://[::1]:8080/ there is a strange bug, causing such messages in the log

24.02.2021 22:47:16.389+10000   >GET / (::1)
24.02.2021 22:47:16.389+875050  >Downloading content...
24.02.2021 22:47:19.128+0       >GET / (::1)
24.02.2021 22:47:19.128+385022  >Downloading content...
24.02.2021 22:47:19.209+0       >GET / (::1)

...

24.02.2021 22:51:52.847+498628520       <Done.
24.02.2021 22:51:52.773+499003541        400 BadRequest. Body 0K of text/html; c
harset=us-ascii [Text].
24.02.2021 22:51:52.773+499003541        3 patch(-es) applied...
24.02.2021 22:51:52.773+499003541       <Done.
24.02.2021 22:51:52.691+499418565        400 BadRequest. Body 0K of text/html; c
harset=us-ascii [Text].
24.02.2021 22:51:52.691+499423565        3 patch(-es) applied...
24.02.2021 22:51:52.691+499423565       <Done.

And then WebOne goes onto infinite loop. However, after a few minutes and approx. 500 pending requests, the loop ends with Timeout/BadRequest errors, and the proxy resuming normal work.

Add transliteration from any encodings to English letters (CP437/Latin-1)

Add in addition to code page (encoding) conversion a possibility to return Russian pages (written used UTF-8 or CP1251, not matter) as a set of Latin letters corresponding similar Russian ones. Example:

Проверка транслита с кириллицы на english

Proverka translita s kirillicy na english

This may be useful for some MS-DOS (MDA/CGA) and Linux clients where there are no support for Russian letters at all.

Probably other languages should be added. This feature should be implemented via translit tables.

Making a x86 build for Linux

Yeah...

First of all, your project is quite interest and I wanted to try that out but... How about x86 Linux build one?
I know this a little bit old on some machines, but it's important to some people that don't have newer devices. Or some older Android phone maybe?

As always, Thank you. ❤️

Cannot use yt.bat converter

Reported by fotios on VOGONS:
https://www.vogons.org/viewtopic.php?p=846434#p846434

I downloaded WebOne.0.10.0.Full.zip
When I start WebOne there's an error reported for line 199.

WebOne HTTP Proxy Server 0.10.0.0
(C) https://github.com/atauenis/webone

Using configuration file webone.conf.
Error on line 199: Converter cannot self download and use STDIN at same time.
All next lines are ignored.
webone.conf load complete.
Starting server...
Listening for HTTP 1.x on port 80.

webone.conf:

191: [Converters]
...
199: ;    uncomment line below to enable youtube-dl script (needs the script)
200: yt.bat "%SRCURL%"

Commenting the line 200 solves the problem. But the yt.bat script still does not works.

Version 0.9.3 don't have this bug.

Status page served when it shouldn't be

I have WebOne running on a machine on a port other than 8080, as nginx is listening on port 8080.

Trying to access localhost:8080 or 127.0.0.1:8080 or 192.168.1.1:8080 through WebOne results in the WebOne status page showing up instead of nginx that's running on port 8080.

Ubuntu Server 22.04.1 LTS VM - WebOne v0.12.3 fails to start with Exit Code 131

I have WebOne installed on an Ubuntu Server 22.04.1 LTS virtual machine. Didn't install anything else other than the program alongside the dependencies used to run it. WebOne version is v0.12.3.

It will NOT start at all, even after configuring my own settings for "DefaultHostName" and "Port".

Here is the output from the "sudo service webone status" command:

× webone.service - WebOne HTTP Proxy Server
     Loaded: loaded (/etc/systemd/system/webone.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2022-12-03 23:11:12 UTC; 1s ago
       Docs: https://github.com/atauenis/webone/wiki/
    Process: 5270 ExecStart=/usr/local/bin/webone --daemon (code=exited, status=131)
   Main PID: 5270 (code=exited, status=131)
        CPU: 13ms

Dec 03 23:11:12 dgretroproxy systemd[1]: webone.service: Main process exited, code=exited, status=131/n/a
Dec 03 23:11:12 dgretroproxy systemd[1]: webone.service: Failed with result 'exit-code'.
Dec 03 23:11:12 dgretroproxy systemd[1]: webone.service: Scheduled restart job, restart counter is at 5.
Dec 03 23:11:12 dgretroproxy systemd[1]: Stopped WebOne HTTP Proxy Server.
Dec 03 23:11:12 dgretroproxy systemd[1]: webone.service: Start request repeated too quickly.
Dec 03 23:11:12 dgretroproxy systemd[1]: webone.service: Failed with result 'exit-code'.
Dec 03 23:11:12 dgretroproxy systemd[1]: Failed to start WebOne HTTP Proxy Server.

Before this, I also tried it on a clean CentOS 7 install with the same results. This leads me to believe that this particular package may be broken or that there is something else missing beyond what I've tried.

Sometimes misses port number

If run WebOne on a host with a HTTP server already running, WebOne can't open pages from that HTTP server. Instead, it opening self's internal pages.

PortMiss

Using latest code from Git (commit 8e492ba) with changed version number (because I'm built a .deb package). However, the bug also present in v0.10.4.0/0.10.4.1.

Seems that somewhere is an logical error in code.

Javascript errors on netscape accessing google.com

Hello there, my issue has two purposes.

  1. is to report this issue and get help.

  2. Is to introduce myself because I couldn't find out how to contact you otherwise.

Regarding the issue when I go to google through your proxy on netscape 4 I get these javascript parsing errors just like if I went to google directly.

image

I saw mention of your service transpiling JS for older system. If this is true is there something I have to turn on to do this transpiling? Alternatively is there a way I can strip out the javascript?

As for the introduction. My name is Richard Bettridge and I created theoldnet.com two years ago. I have similar goals in mind as you. I want to be able to access various internet resources on my collection of vintage computers.

Over the past year or so I have been speaking to other people who also have this goal in mind. There people have been creating their own tools and services.

I would like us all to know each other, and to help each other in some form or another. We are all working on very similar stuff, I think it's perhaps wasteful for us to work on each piece in isolation.

I am really excited about what you are doing here, some of the features are really cool. I want to know more, I want to use your service and I want to help where I can.

If you have any interest in speaking to me and the group please let me know how best to contact you!

Blocking ad scripts in WebOne

How to block ad scripts in WebOne that slow down the loading of some pages in older browsers, in some cases causing browsers crashes? The following domains (including subdomains) need to be blocked:

  • googlesyndication.com
  • an.yandex.ru
  • mc.yandex.ru
  • yastatic.net
  • rareru.ru
  • ad.mail.ru
  • betweendigital.com
  • marketgid.com
  • utarget.ru
  • doubleclick.net

Option to use id_ or fw_ URLs

Can there be options on how the redirects work? e.g. putting id_ at the end of the date in the archive.org URL returns the exact original content (which may refer to further dead stuff, but that too should get redirectd)

[QUESTION] Can WebOne be reliably used for accepting game connections from Windows XP?

I have a friend who is running a server that allows you to play Toontown Online using the original game client. Everything works as intended, other than the fact the launcher struggles to connect due to the modern TLS (I believe). My friend wants to host WebOne on his server strictly to allow users who want to play via Windows XP to connect.

Is this viable?
Are there any security issues with this?
Is it possible to prevent people directly connecting to his WebOne instance, so that it can be used strictly as a TLS proxy?

Apologies if I come across as dumb - I'm not that insightful on proxies and the like.

P.S. He has managed to setup WebOne on his server, however he does not want people to be able to connect to it to access every website under the sun - he just wants it so that people on Windows XP can access his website and play the game.

Can't log in to VOGONS & VK

For some unknown reason, VOGONS.org and VK.com sites are rejecting valid user names and passwords.
This happens on both regular and local mode of the proxy. Tested many browsers, Netscape 3/4, IE 3/4/5/6, Mozilla Firefox 1/2/3.6, any where the problem is identical. Probably the servers don't accept HTML form data or some important cookies are disappearing.

WebOne and HFS HTTP File Server conflicting with each other

Why are WebOne and HFS HTTP File Server conflicting with each other? I have on Windows 10 Enterprise (x64) v1903 WebOne running on port 90 and HFS HTTP File Server running on port 32000. In the settings of any browser (regardless of version), the proxy 127.0.0.1:90 is registered as the HTTP/SSL proxy. But when I type the URL http://127.0.0.1:32000 in the address bar, the WebOne home page appears instead of the HFS HTTP File Server home page.
How to fix these conflicts? Or are you planning to fix them in the future WebOne release? Thank you in advance.
P.S. HFS HTTP File Server official website: http://www.rejetto.com/hfs

YouTube video transcoding is broken

Seems that yt.bat script cannot process videos that are separated to two files on YouTube servers - one file for audio and one for video.

D:\WebOne\bin\Debug\netcoreapp3.1>youtube-dl "https://www.youtube.com/watch?v=GcArCzgDfwE" -o - | ffmpeg -i pipe: -vcodec mpeg2video -acodec mp3 -f mpegts igr.ts
ffmpeg version git-2020-05-28-c0f01ea Copyright (c) 2000-2020 the FFmpeg develop
ers
  built with gcc 9.3.1 (GCC) 20200523
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfi
g --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libb
luray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --e
nable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-lib
twolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --
enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --e
nable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo
-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom
--disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --ena
ble-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable
-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 49.100 / 56. 49.100
  libavcodec     58. 89.100 / 58. 89.100
  libavformat    58. 43.100 / 58. 43.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 83.100 /  7. 83.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[youtube] GcArCzgDfwE: Downloading webpage
[youtube] GcArCzgDfwE: Downloading MPD manifest
[download] Destination: -
[download]   0.5% of 22.62MiB at 734.06KiB/s ETA 00:31Input #0, mov,mp4,m4a,3gp,
3g2,mj2, from 'pipe:':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2014-05-14T12:24:56.000000Z
  Duration: 00:01:00.00, start: 0.000000, bitrate: N/A
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720
[SAR 1:1 DAR 16:9], 2967 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
p, 192 kb/s (default)
    Metadata:
      creation_time   : 2014-05-14T12:24:56.000000Z
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (mp3_mf))
[mp3_mf @ 06a60080] could not find any MFT for the given media type
[mp3_mf @ 06a60080] could not create MFT
Error initializing output stream 0:1 -- Error while opening encoder for output s
tream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!


ERROR: unable to write data: [Errno 32] Broken pipe

D:\WebOne\bin\Debug\netcoreapp3.1>

Without ffmpeg, youtube-dl can download any videos first as 2 files, and then packs then into single MKV file. The current download&convert script (yt.bat) utilizes a single stream, so no longer can work.

Can't start webone

Cannot start server: The process cannot access the file because it is being used
by another process!

occurs any time I try starting it.
I ran with admin privileges.
System:

Windows 7 Professional (64 bit)

Add support for moving of default webone.conf

Currently WebOne is using only webone.conf in application's directory as default configuration file. But when the app is installed via DEB or RPM package, both the app and its config file begins placed in /usr/share/WebOne/, which is not a good place for config files.

I think that WebOne should try to load default webone.conf not only from app directory, and corresponding to rules of used OS.

E.g.:

  1. On Windows:
    1.1. .\webone.conf
    1.2. %AppData%\WebOne\webone.conf
    1.3. C:\Users\username\webone.conf (or C:\Users\username\Documents\webone.conf)
  2. On Linux:
    2.1 ./webone.conf
    2.2. /var/WebOne/webone.conf
    2.3. ~/webone.conf or ~/.webone
  3. On macOS:
    3.1. ??? (what that on Apple)

Also temporary directory for converter results also should be settable in config file or be auto-set corresponding on used OS: %TEMP%, $TMPDIR, /tmp/, /var/tmp/, etc.

All deb/rpm packages should install the default config file to correct folder.

Probably this can be do by renaming default webone.conf to webone.conf.skel, and then auto-copying of it to correct directory regarding to access rules. So, if the app is runned with user rights, copy to ~/.webone or %AppData%\WebOne\webone.conf. Or if the app is runned on Linux through sudo, copy it to /var/WebOne/webone.conf . But if there are a real .\webone.conf, the app should use it (meaning that user attempted to use the WebOne from a temporary folder, not from /usr/share/WebOne/ through /usr/bin/WebOne symlink).

systemd dependancy makes dockerizing difficult

Readme states:
Basically, WebOne requiring only one package to be installed. It is dotnet-runtime-3.1

But this is not quite true, as it also seems to depend on systemd, as per:

Setting up webone (0.11.0) ...
/var/lib/dpkg/info/webone.postinst: 19: /var/lib/dpkg/info/webone.postinst: systemctl: not found
/var/lib/dpkg/info/webone.postinst: 20: /var/lib/dpkg/info/webone.postinst: systemctl: not found
dpkg: error processing package webone (--configure):
 installed webone package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
 webone

Anyone else attempting to dockerize WebOne, until checks are added to webone.postinst, can use this workaround:

        if [ ! -f /bin/systemctl ]; then
                # Create dummy systemctl
                touch /bin/systemctl
                chmod +x /bin/systemctl
        fi

Broken YouTube.com (through ViewTube) video converting

Cannot play YouTube videos through Viewtube-Webone userscript.

The video playback does not starting because WebOne is murdering the converter.

WebOne HTTP Proxy Server 0.10.1.0
(C) https://github.com/atauenis/webone


Using configuration file webone.conf.
webone.conf load complete.
Starting server...
Listening for HTTP 1.x on port 80.
19:58:03.618    Got a request.
19:58:03.618+390022     >GET /!convert/?url=https%3A%2F%2Fr2---sn-4g5edned.c.you
tube.com%2Fvideoplayback%3Fexpire%3D1588211701%26ei%3DldupXti_CoeuyAW-k6DoBw%26i
p%3D2a00%3A1370%3A813d%3Abef%3Aa5f1%3Acd7%3Af588%3A8a16%26cp%3DU0pXTVJMT19FS0NQN
19KRlNIOkFPZVY5VU9OTlpickxjcnZjWC1XOU9JZzktdjhUdXRGdklZVTNCRTBoWTM%26id%3Do-AIwB
qF63GHpvUo9Azuy4Gxl0msJjzBE0tNYwZQbdl5bB%26itag%3D18%26source%3Dyoutube%26requir
essl%3Dyes%26mh%3DtH%26mm%3D32%26mn%3Dsn-4g5edned%26ms%3Dsu%26mv%3Dm%26mvi%3D1%2
6pl%3D32%26sc%3Dyes%26initcwndbps%3D706250%26vprv%3D1%26mime%3Dvideo%2Fmp4%26gir
%3Dyes%26clen%3D4993259%26ratebypass%3Dyes%26dur%3D64.551%26lmt%3D15804182430422
40%26mt%3D1588190052%26c%3DWEB%26txp%3D6216222%26sparams%3Dexpire%2Cei%2Cip%2Ccp
%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cratebypass%2Cdur
%2Clmt%26sig%3DAJpPlLswRQIhALuBlRCs5enbConQaC-eTULufcBmc4d1bZWDGEa26dPgAiBZzifBu
mQN-MVj_APAR8mRcVV9Y2hcbvuVymDmeNfURQ%3D%3D%26lsparams%3Dmh%2Cmm%2Cmn%2Cms%2Cmv%
2Cmvi%2Cpl%2Csc%2Cinitcwndbps%26lsig%3DALrAebAwRAIgTca-e3oX59wY_uMfqzNrcKfE7STWt
KxS1dlCAA0m6MYCIFPqtqrLIFpQKvst_KMFejmlxOUFXUCGC21WZvANkDsh&util=ffmpeg&arg=%20-
vcodec%20libtheora%20-s%20128x96%20-acodec%20libvorbis%20-ac%201%20-f%20ogg&type
=video/avi
19:58:03.618+1960112     Begin process.
19:58:03.618+5780330     Internal: /!convert/?url=https%3A%2F%2Fr2---sn-4g5edned
.c.youtube.com%2Fvideoplayback%3Fexpire%3D1588211701%26ei%3DldupXti_CoeuyAW-k6Do
Bw%26ip%3D2a00%3A1370%3A813d%3Abef%3Aa5f1%3Acd7%3Af588%3A8a16%26cp%3DU0pXTVJMT19
FS0NQN19KRlNIOkFPZVY5VU9OTlpickxjcnZjWC1XOU9JZzktdjhUdXRGdklZVTNCRTBoWTM%26id%3D
o-AIwBqF63GHpvUo9Azuy4Gxl0msJjzBE0tNYwZQbdl5bB%26itag%3D18%26source%3Dyoutube%26
requiressl%3Dyes%26mh%3DtH%26mm%3D32%26mn%3Dsn-4g5edned%26ms%3Dsu%26mv%3Dm%26mvi
%3D1%26pl%3D32%26sc%3Dyes%26initcwndbps%3D706250%26vprv%3D1%26mime%3Dvideo%2Fmp4
%26gir%3Dyes%26clen%3D4993259%26ratebypass%3Dyes%26dur%3D64.551%26lmt%3D15804182
43042240%26mt%3D1588190052%26c%3DWEB%26txp%3D6216222%26sparams%3Dexpire%2Cei%2Ci
p%2Ccp%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cratebypass
%2Cdur%2Clmt%26sig%3DAJpPlLswRQIhALuBlRCs5enbConQaC-eTULufcBmc4d1bZWDGEa26dPgAiB
ZzifBumQN-MVj_APAR8mRcVV9Y2hcbvuVymDmeNfURQ%3D%3D%26lsparams%3Dmh%2Cmm%2Cmn%2Cms
%2Cmv%2Cmvi%2Cpl%2Csc%2Cinitcwndbps%26lsig%3DALrAebAwRAIgTca-e3oX59wY_uMfqzNrcKf
E7STWtKxS1dlCAA0m6MYCIFPqtqrLIFpQKvst_KMFejmlxOUFXUCGC21WZvANkDsh&util=ffmpeg&ar
g=%20-vcodec%20libtheora%20-s%20128x96%20-acodec%20libvorbis%20-ac%201%20-f%20og
g&type=video/avi
19:58:03.618+6130350    >Downloading source stream (connecting)...
19:58:03.618+33801933   >Downloading source stream (receiving)...
19:58:03.618+53033033    Converting: ffmpeg -i pipe:  -vcodec libtheora -s 128x9
6 -acodec libvorbis -ac 1 -f ogg pipe:...
19:58:03.618+53053034    Writing stdin...
19:58:03.618+53093036    Reading stdout...
19:58:03.618+53123038   <Send video/avi stream.
19:58:03.618+53763075    Waiting for finish of converting...
ffmpeg version git-2019-12-19-99f505d Copyright (c) 2000-2019 the FFmpeg develop
ers
  built with gcc 9.2.1 (GCC) 20191125
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfi
g --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libb
luray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --e
nable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable
-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 -
-enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enab
le-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --en
able-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcode
c --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 -
-enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 36.101 / 56. 36.101
  libavcodec     58. 65.100 / 58. 65.100
  libavformat    58. 35.101 / 58. 35.101
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 69.101 /  7. 69.101
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100


19:58:03.618+105096011   Idle process killed.
19:58:03.618+105126013   Converting end.
19:58:03.618+105196017  <Done.

Test case:

  1. Latest nightly of WebOne (from Git master sources; 29-apr-2020 22:58)
  2. Google Chrome + Tampermonkey
  3. https://github.com/atauenis/ViewTube-WebOne/releases/download/v2019.12.05-AT-3/viewtube-webone.min.user.js
  4. https://www.youtube.com/watch?v=iwjrhFfBI-o&disable_polymer=1
  5. test-viewtube-bug

Some network operations breaks on timeout

Some operations related to download something from remote servers are hanging and falling off due to timeout.

Examples:

  1. Image converting.
    1.1. Browser trying to download a webm picture (and a webm->gif rule is present in webone.conf).
    1.2. WebOne returns a 302 to converter.
    1.3. Browser opening converter page.
    1.4. Starting the converter.
    1.5. Converter attempts to download source file....
    1.6. After some time download fails. The error is Timeout.
    1.7. But in 80% of attempts the file gets successfully downloaded in adequate time and then converted without problems.
  2. Simply opening a page.
    2.1 Browser trying to download a page via proxy (GET http://... HTTP/1.0.....).
    2.1 WebOne is downloading the page...
    2.2. After few minutes network stack stops wait, and returning to WebOne a Timeout error.
    2.2.1 But most of attempts have no problems here. And the original page correctly loaded by WebOne and then gets processed okay.

This appear at least on both Win7 SP1 and Win10 1903. Different hardware, antiviruses, ISPs, LANs, etc... The common here is using default Windows Firewall.

Any ideas why?

  • Incorrect .NET network stack usage?
  • Windows Defender-Firewall machinations?

Support for UTF-16

Report from fotios on Vogons.
https://www.vogons.org/viewtopic.php?p=841833#p841833

Hi, many thanks for this project!

I'm testing version 0.10.0.0 0.10.0a1
When I set the output encoding to 1200

;OutputEncoding=AsIs
OutputEncoding=1200

The following error is reported:

Using configuration file webone.conf.
Warning: Unknown codepage 1200, using AsIs. See MSDN 'Encoding.GetEncodings Me
thod' article for list of valid encodings.
webone.conf load complete.
Starting server...
Listening for HTTP 1.x on port 80.

Need to adapt Wikipedia and IMDb

Hello, dear Atauenis! Can you adapt Russian/English Wikipedia and imdb.com for the following browsers?:

  • Internet Explorer (versions from 3.0 to 11.0)
  • Netscape (versions from 3.04 to 9.0.0.6)
  • Mozilla Firefox (versions from 1.0 to 48.0.2)
  • Mozilla Suite (versions from 0.9.4 to 1.7.13)
  • SeaMonkey (versions from 1.0 to 2.40)
  • K-Meleon (versions from 1.1.5 to 1.5.4)
  • Opera Presto (versions from 3.51 to 12.18)
  • Opera Blink (versions from 15 to 36)
  • Google Chrome (versions from 1.0.154.65 to 49.0.2623.112)
  • Safari for Windows (versions from 3.1 to 5.1.7)

Thank you in advance.

Does not installing on Fedora 32

Tried to install WebOne 0.10.1 from RPM package in Fedora 32. Seems that RPM is broken (I've created it just by analogy to DEB, without testing because haven't any Red Hat-like environments at that time).

Step 1. Try to install as is.

$ sudo rpm -i WebOne.0.10.1.linux-x64.rpm
предупреждение: WebOne.0.10.1.linux-x64.rpm: Заголовок V3 RSA/SHA256 Signature, key ID e6e223af: NOKEY
ошибка: Неудовлетворенные зависимости:
	dotnet-runtime-3.1 >= нужен для WebOne-0.10.1-0.x86_64
	ffmpeg >= нужен для WebOne-0.10.1-0.x86_64
	imagemagick-6.q16 >= нужен для WebOne-0.10.1-0.x86_64
(LIST OF DEPENDS; JUST LIKE .deb FOR UBUNTU 18.04/19.10)

Step 2. Solve depends.

$ sudo dnf install dotnet-runtime-3.1
Установлен:
  dotnet-host-3.1.3-1.fc32.x86_64        dotnet-hostfxr-3.1-3.1.3-1.fc32.x86_64
  dotnet-runtime-3.1-3.1.3-1.fc32.x86_64 lttng-ust-2.11.0-4.fc32.x86_64        

Выполнено!
(OKAY)

$ sudo dnf install ffmpeg
Последняя проверка окончания срока действия метаданных: 0:09:32 назад, Вт 26 мая 2020 14:21:15.
Нет соответствия аргументу: ffmpeg
Ошибка: Совпадений не найдено: ffmpeg
(ERROR: NO "ffmpeg" IN REPOSITORIES)

$ sudo dnf install imagemagick-6.q16
Последняя проверка окончания срока действия метаданных: 0:09:53 назад, Вт 26 мая 2020 14:21:15.
Нет соответствия аргументу: imagemagick-6.q16
Ошибка: Совпадений не найдено: imagemagick-6.q16
(ERROR: NO "imagemagick-6.q16" IN REPOSITORIES)

Step 3. Try to manually install depends.

FFmpeg: https://computingforgeeks.com/how-to-install-ffmpeg-on-fedora/

$ sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf -y install ffmpeg
Установлен:
  ffmpeg-4.2.2-5.fc32.x86_64 

Выполнено!
(ALL OKAY)

ImageMagick. Its package is not imagemagick-6.q16 like in Ubuntu, it is ImageMagick here.

$ sudo dnf -y install ImageMagick
Установлен:
  ImageMagick-1:6.9.10.86-2.fc32.x86_64                                         
  ImageMagick-libs-1:6.9.10.86-2.fc32.x86_64

Выполнено!
(OKAY)

Step 4. Try to install again...

$ sudo dnf install https://github.com/atauenis/webone/releases/download/v0.10.1/WebOne.0.10.1.linux-x64.rpm
Последняя проверка окончания срока действия метаданных: 0:02:01 назад, Вт 26 мая 2020 14:37:51.
WebOne.0.10.1.linux-x64.rpm                     211 kB/s | 357 kB     00:01    
Ошибка: 
 Проблема: conflicting requests
  - nothing provides imagemagick-6.q16 >=  needed by WebOne-0.10.1-0.x86_64
(попробуйте добавить «--skip-broken» для пропуска удаляемых пакетов)
(ERROR: STILL NO "imagemagick-6.q16" PACKAGE)

Step 5. Try to run with force. Unpacked content of WebOne.0.10.1.linux-x64.rpm, started executable binary. All is working. So this is a problem caused by incorrect packaging (invalid package names in depend list).

What need to fix this bug:

  1. Fix <RpmDependency Include="imagemagick-6.q16" /> to <RpmDependency Include="ImageMagick" /> in WebOne.csproj.
  2. Edit wiki [[Linux installation]] article to add these things:
    2.1. "Step 1". Add RpmFusion repository to your OS:
    $ sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
    $ sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    
    2.2. "Step 2". Install WebOne 0.10.2+ via dnf, not rpm -i:
    $ sudo dnf -y install https://github.com/atauenis/webone/releases/download/v0.10.2/WebOne.0.10.2.linux-x64.rpm
    
    2.3. "Step 3". Configure webone.conf.
  3. Mark RPM builds of WebOne 0.10.1 as broken.
  4. Rebuild and debug again in Fedora.

Time of the fix: 0.10.2 release.

edit http:/ to http:// in set edits

Nice work! I am trying to get it working with Atari Highwire browser. Cannot set a proxy so I use
http://127.0.01/http://atari-forum.com
The browser changes the double-slash to single-slash so the proxy tries
GET /http:/atari-forum.com
and fails.
How can I add a redirect to fix this?

Wikipedia scripts and styles keep loading even after being blocked

I added the following code to the webone.conf config file to block JavaScript and CSS on Wikipedia:

[Edit:http://[a-z]*.wikipedia.org/w/load.php]
OnContentType=text/javascript
AddRedirect=about:blank

[Edit:http://[a-z]*.wikipedia.org/w/load.php]
OnContentType=text/css
AddRedirect=about:blank

but scripts and styles continue to load anyway, as in the screenshot: https://b.radikal.ru/b23/2103/f3/554da5d31ebft.jpg
Host system: Windows 10 Enterprise (x64) v1903
WebOne version: 0.10.6 Full (x86)
Guest system: Windows XP Professional SP3
Guest browser: Internet Explorer 8

Converters are running with mixed up arguments

A rule like

[Converters]
convert %SRC% %ARG1% %DESTEXT%:- %ARG2%

[Edit:.*]
OnContentType=image/jpeg
OnContentType=image/png
OnCode=200
IgnoreUrl=webdav
AddConvert=convert
AddConvertDest=jpeg
AddConvertArg1=-quality 20
AddResponseHeader=Content-Type: image/jpeg

is running converter as convert convert-1965328557.orig.tmp -quality 20 jpeg:- -quality 20, however only first argument is set. And a rule like

[Edit:.*]
OnContentType=image/jpeg
OnContentType=image/png
OnCode=200
IgnoreUrl=webdav
AddConvert=convert
AddConvertDest=jpeg
AddConvertArg2=-quality 20
AddResponseHeader=Content-Type: image/jpeg

is running converter as convert convert-1965328557.orig.tmp jpeg:-, without second argument.

Seems to be a bug!

Local URLs on Linux are not working

After run of fresh WebOne 0.10a1 on Ubuntu 18.04 all local URLs like PAC, test pages or converters are causing endless loop:

GET /auto.pac
Downloading content...
GET /auto.pac
Downloading content...
GET /auto.pac
Downloading content...

A workaround for it is entering DefaultHostName=192.168.xxx.ууу in webone.conf. However, now WebOne telling that Warning: DefaultHostName setting is not applicable to this computer. But all begins working.

When opening info page (http://localhost/!) it doesn't display any aliases except 127.0.0.1:80 and computer_name:80.

This meaning that System.Net.Dns.GetHostEntry(Environment.MachineName).AddressList is not working as need in .NET Core / Linux (it's only Windows-specific).

Linux packages are broken

Thanks to Keenmaster486 @ VOGONS
https://www.vogons.org/viewtopic.php?p=939655#p939655

Cannot install any packages of WebOne 0.10.5.

1     Preparing to unpack ./WebOne.0.10.5.linux-x64.deb ...
2	: not foundkg/info/webone.prerm: 2: 
3	Invalid unit name "webone
4	" escaped as "webone\x0d" (maybe you should use systemd-escape?).
5	Failed to stop webone\x0d.service: Unit webone\x0d.service not loaded.
6	Invalid unit name "webone
7	" escaped as "webone\x0d" (maybe you should use systemd-escape?).
8	Failed to disable unit: Unit file webone\x0d.service does not exist.
9	/var/lib/dpkg/info/webone.prerm: 8: Syntax error: end of file unexpected (expecting "}")
10	dpkg: warning: old webone package pre-removal script subprocess returned error exit status 2
11	dpkg: trying script from the new package instead ...
12	: not foundkg/tmp.ci/prerm: 2: 
13	Invalid unit name "webone
14	" escaped as "webone\x0d" (maybe you should use systemd-escape?).
15	Failed to stop webone\x0d.service: Unit webone\x0d.service not loaded.
16	Invalid unit name "webone
17	" escaped as "webone\x0d" (maybe you should use systemd-escape?).
18	Failed to disable unit: Unit file webone\x0d.service does not exist.
19	/var/lib/dpkg/tmp.ci/prerm: 8: Syntax error: end of file unexpected (expecting "}")
20	dpkg: error processing archive ./WebOne.0.10.5.linux-x64.deb (--install):
21	 new webone package pre-removal script subprocess returned error exit status 2
22	: not foundkg/info/webone.postinst: 2: 
23	Unknown operation daemon-reload
24	.
25	Invalid unit name "webone
26	" escaped as "webone\x0d" (maybe you should use systemd-escape?).
27	Failed to enable unit: Unit file webone\x0d.service does not exist.
28	dpkg: error while cleaning up:
29	 installed webone package post-installation script subprocess returned error exit status 1
30	Errors were encountered while processing:
31	 ./WebOne.0.10.5.linux-x64.deb

Changing line endings in preinst/postinst scripts from CrLf to LF fixes the bug. Seems, linux packages of v0.10.5 are broken due to something happenned between my test and building of packages.

Commit a5c03a2 should also fix the problem, but currently I have not tested it deeply. Simply there is no time to do this.

matrix web client

Есть ли возможность запустить веб клиенты matrix, к примеру http://app.element.io/#/welcome
пробовал его и несколько других, получаю белый экран.

Adding support for e-mail clients

Are you planning to add support for old e-mail clients to WebOne? I am interested in supporting the following email clients:

  • Outlook Express (version 4.0 and higher)
  • Microsoft Outlook (version 97 and higher)
  • Mozilla Thunderbird (version 1.0 and higher)
  • e-mail clients included in Netscape (version 3.04 and higher)
  • e-mail clients included in Mozilla Suite (version 0.9.4 and higher)
  • e-mail clients included in SeaMonkey (version 1.0 and higher)
  • e-mail clients included in Opera Presto (version 4.02 and higher)

Disable JavaScript and CSS for individual sites

How to disable JavaScript and CSS for individual sites in WebOne? Needed for correct display of Wikipedia in the following browsers:

  • Internet Explorer 4.01 SP2
  • Netscape 4.80
  • Mozilla Firefox 1.0
  • SeaMonkey 1.0
  • Opera 8.54

Thank you in advance.

HTTPS to HTTP redirection issues in MSN Messenger

Hi,

I'm not sure if this is something that can be fixed in WebOne. I'm also sure how many other apps are affected by this issue

The app I'm trying to run makes several calls out over HTTPS, proxied through WebOne as Windows 98 is too old to support the TLS version the server is now running

However the application sees the HTTP:// response from WebOne and appends HTTPS:// to it again. Turning it into https://http://SomeWebAddress

Is there anything I can do in WebOne itself to disable this behaviour? Or am I going to need to look into patching the application itself for it

The ability to load login:password from a passwd file

It would be nice to have the ability to set a password file path in the configuration file that contained a list of login:password entries. As an example:

Config File:

AuthenticateFile=/etc/WebOne/passwd

/etc/WebOne/passwd

user1:password
user2:password
user3:password

This would give the ability for basic user management.

Cannot enable webone.service in systemd

Hi, I'm struggling to get WebOne to start automatically, using Rapsbian headless.

I try: sudo systemctl enable webone
Created symlink /etc/systemd/system/default.target.wants/webone.service → /etc/systemd/system/webone.service.


test the proxy, nothing.. doesn't seem to be running in htop either...
Load WebOne normally from the command line, proxy is working...

Any ideas? Cheers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.