No description
Find a file
2024-07-21 11:35:20 +02:00
001 first commit 2024-07-21 11:35:20 +02:00
002 first commit 2024-07-21 11:35:20 +02:00
003 first commit 2024-07-21 11:35:20 +02:00
004 first commit 2024-07-21 11:35:20 +02:00
005 first commit 2024-07-21 11:35:20 +02:00
010 first commit 2024-07-21 11:35:20 +02:00
011 first commit 2024-07-21 11:35:20 +02:00
012 first commit 2024-07-21 11:35:20 +02:00
013 first commit 2024-07-21 11:35:20 +02:00
014 first commit 2024-07-21 11:35:20 +02:00
015 first commit 2024-07-21 11:35:20 +02:00
016 first commit 2024-07-21 11:35:20 +02:00
017 first commit 2024-07-21 11:35:20 +02:00
018 first commit 2024-07-21 11:35:20 +02:00
019 first commit 2024-07-21 11:35:20 +02:00
020 first commit 2024-07-21 11:35:20 +02:00
030 first commit 2024-07-21 11:35:20 +02:00
031 first commit 2024-07-21 11:35:20 +02:00
032 first commit 2024-07-21 11:35:20 +02:00
033 first commit 2024-07-21 11:35:20 +02:00
034 first commit 2024-07-21 11:35:20 +02:00
040 first commit 2024-07-21 11:35:20 +02:00
050 first commit 2024-07-21 11:35:20 +02:00
060 first commit 2024-07-21 11:35:20 +02:00
061/dictionaries/proxy first commit 2024-07-21 11:35:20 +02:00
062/dictionaries/proxy first commit 2024-07-21 11:35:20 +02:00
100 first commit 2024-07-21 11:35:20 +02:00
101/dictionaries/foxyproxy first commit 2024-07-21 11:35:20 +02:00
firefox.png first commit 2024-07-21 11:35:20 +02:00
foxyproxy.png first commit 2024-07-21 11:35:20 +02:00
LICENSE Initial commit 2024-07-21 11:26:02 +02:00
load.py first commit 2024-07-21 11:35:20 +02:00
README.md first commit 2024-07-21 11:35:20 +02:00

Table of Contents

Tutorial description files

all/proxy/20-auto.yml

version: 1.1
auto:
  description: Automatic proxy configuration URL
  type: web_address
  disabled:
    type: jinja
    jinja: |
      {% if _.proxy_mode != 'Automatic proxy configuration URL' %}
      the proxy mode is not automatic
      {% endif %}      
    description: if proxy_mode is not "automatic proxy configuration URL"

all/proxy/50-proxy_dns_socks5.yml

version: 1.1
proxy_dns_socks5:
  mode: advanced
  description: Use proxy DNS when using SOCKS v5
  default: false
  disabled:
    type: jinja
    jinja: |
      {% if _.proxy_mode == 'No proxy' %}
      the proxy mode is no proxy
      {% elif socks_version is undefined or socks_version == 'v4' %}
      socks version is v4
      {% endif %}      
    params:
      socks_version:
        type: variable
        variable: _.manual.socks_proxy.version
        propertyerror: false

all/proxy/00-proxy.yml

version: 1.1
proxy_mode:
  description: Configure Proxy Access to the Internet
  choices:
  - No proxy
  - Auto-detect proxy settings for this network
  - Use system proxy settings
  - Manual proxy configuration
  - Automatic proxy configuration URL
  default: No proxy

all/proxy/40-prompt_authentication.yml

version: 1.1
prompt_authentication:
  description: Prompt for authentication if password is saved
  default: true
  disabled:
    type: jinja
    jinja: |
      {% if _.proxy_mode == 'No proxy' %}
      proxy mode is no proxy
      {% endif %}      
    description: if proxy is "no proxy"

all/proxy/60-dns_over_https.yml

version: 1.1
dns_over_https:
  description: DNS over HTTPS

  enable_dns_over_https: false  # Enable DNS over HTTPS

  provider:
    description: Use Provider
    choices:
    - Cloudflare
    - NextDNS
    - Custom
    default: Cloudflare
    disabled:
      type: jinja
      jinja: |
        {% if not _.enable_dns_over_https %}
        Enable DNS over HTTPS is False
        {% endif %}        
      description: if enable_dns_over_https is not False

  custom_dns_url:
    description: Custom DNS URL
    type: web_address
    disabled:
      type: jinja
      jinja: |
        {% if provider is not defined or provider != 'Custom' %}
        provider is not custom
        {% endif %}        
      params:
        provider:
          type: variable
          variable: _.provider
          propertyerror: false
      description: if provider is Custom
    validators:
    - type: jinja
      jinja: |
        {% if _.custom_dns_url.startswith('http://') %}
        only https is allowed
        {% endif %}        
      description: custom_dns_url must starts with 'https://' only

all/proxy/10-manual.yml

version: 1.1
manual:
  description: Manual proxy configuration
  disabled:
    type: jinja
    jinja: |
      {% if _.proxy_mode != 'Manual proxy configuration' %}
      the proxy mode is not manual
      {% endif %}      
    description: if proxy_mode is not "manual proxy configuration"

  http_proxy:  # HTTP Proxy
    address:
      description: HTTP address
      type: domainname
    port:
      description: HTTP Port
      type: port
      default: '8080'

  use_for_https: true  # Also use this proxy for HTTPS

  '{{ suffix }}_proxy':
    description: '{{ suffix }} Proxy'
    type: dynamic
    dynamic:
    - HTTPS
    - SOCKS
    hidden:
      type: jinja
      jinja: |
        {% if suffix == 'HTTPS' and _.use_for_https %}
        HTTPS is same has HTTP
        {% endif %}        
      params:
        suffix:
          type: suffix
      description: |
        if HTTPS is same has HTTP        
    address:
      description: address
      type: domainname
      default:
        type: variable
        variable: __.http_proxy.address
    port:
      description: Port
      type: port
      default:
        type: variable
        variable: __.http_proxy.port
    version:
      description: SOCKS host version used by proxy
      choices:
      - v4
      - v5
      default: v5
      disabled:
        type: jinja
        jinja: |
          {% if suffix == 'HTTPS' %}
          if HTTPS
          {% endif %}          
        params:
          suffix:
            type: suffix
        description: |
          if not SOCKS          

all/proxy/30-no_proxy.yml

version: 1.1
no_proxy:
  description: Address for which proxy will be desactivated
  type: domainname
  multi: true
  mandatory: false
  params:
    allow_ip: true
    allow_cidr_network: true
    allow_without_dot: true
    allow_startswith_dot: true
  disabled:
    type: jinja
    jinja: |
      {% if _.proxy_mode == 'No proxy' %}
      proxy mode is no proxy
      {% endif %}      
    description: if proxy is "no proxy"
  test:
  - .mozilla.org
  - .net.nz
  - 192.168.1.0/24
  help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied

all/foxyproxy/10-redefine.yml

version: 1.1
proxies:
  username:
    redefine: true
    mandatory: false

  password:
    redefine: true
    hidden:
      type: jinja
      jinja: |
        {% if not _.username %}
        no username defined
        {% endif %}        
      description: if username is not defined

all/foxyproxy/00-foxyproxy.yml

version: 1.1
proxies:
  description: Proxy configuration
  _type: leadership

  title:
    description: Title or Description
    multi: true

  color:
    description: Color

  type:
    description: Type
    type: choice
    choices:
    - HTTP
    - HTTPS/SSL
    - SOCKS4
    - SOCKS5
    - PAC URL
    - WPAD
    - System (use system settings)
    - Direct (no proxy)
    default: Direct (no proxy)

  address:
    description: IP address, DNS name, server name
    multi: true
    disabled:
      type: jinja
      jinja: |
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
        proxy does not need address
        {% endif %}        
      description: &needs_address |
        if type not in:

        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5        

    default:
      type: jinja
      jinja: |
        {% if firefox_address is not undefined %}
        {{ firefox_address }}
        {% endif %}        
      params:
        firefox_address:
          type: variable
          variable: proxy.manual.http_proxy.address
          propertyerror: false
      description: copy HTTP address if proxy is not "Manual"

  port:
    description: Port
    type: port
    default:
      type: jinja
      jinja: |
        {% if firefox_port is not undefined %}
        {{ firefox_port }}
        {% endif %}        
      params:
        firefox_port:
          type: variable
          variable: proxy.manual.http_proxy.port
          propertyerror: false
      description: copy HTTP port if proxy is not "Manual"
    disabled:
      type: jinja
      jinja: |
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
        proxy does not need port
        {% endif %}        
      description: *needs_address

  username:
    description: Username
    type: unix_user
    mandatory:
      type: jinja
      jinja: |
        {% if _.password %}
        username is mandatory
        {% endif %}        
    disabled:
      type: jinja
      jinja: |
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
        proxy does not need username
        {% endif %}        
      description: *needs_address

  password:
    description: Password
    type: secret
    disabled:
      type: jinja
      jinja: |
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
        proxy does not need password
        {% endif %}        
      description: *needs_address

  url:
    type: web_address
    disabled:
      type: jinja
      jinja: |
        {% if _.type not in ['PAC URL', 'WPAD'] %}
        proxy does not need url
        {% endif %}        
      description: |
        if type is not in:

        - PAC URL
        - WPAD        

Generated documentation

Variables for "proxy"

Variable                                                                                                                  Description                                                                                                              
proxy.proxy_mode
choice standard mandatory
Proxy.proxy_mode (Configure Proxy Access to the Internet).
Default: No proxy
Choices:
- No proxy
- Auto-detect proxy settings for this network
- Use system proxy settings
- Manual proxy configuration
- Automatic proxy configuration URL

proxy.manual (Manual proxy configuration)

basic disabled

Disabled: if proxy_mode is not "manual proxy configuration"

Variable                                                                                                                  Description                                                                                                              
proxy.auto
web_address basic mandatory disabled
Proxy.auto (Automatic proxy configuration URL).
Disabled: if proxy_mode is not "automatic proxy configuration URL"
proxy.no_proxy
domainname standard disabled unique multiple
Proxy.no_proxy (Address for which proxy will be desactivated).
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
Validators:
- the domain name can starts by a dot
- the domain name can be only a hostname
- the domain name can be an IP
- the domain name can be network in CIDR format
Examples:
- .mozilla.org
- .net.nz
- 192.168.1.0/24
Disabled: if proxy is "no proxy"
proxy.prompt_authentication
boolean standard mandatory disabled
Proxy.prompt_authentication (Prompt for authentication if password is saved).
Default: True
Disabled: if proxy is "no proxy"

proxy.dns_over_https (DNS over HTTPS)

basic

Variable                                                                                                                  Description                                                                                                              
proxy.dns_over_https.enable_dns_over_https
boolean standard mandatory
Proxy.dns_over_https.enable_dns_over_https (Enable DNS over HTTPS).
Default: False
proxy.dns_over_https.provider
choice standard mandatory disabled
Proxy.dns_over_https.provider (Use Provider).
Default: Cloudflare
Choices:
- Cloudflare
- NextDNS
- Custom
Disabled: if enable_dns_over_https is not False
proxy.dns_over_https.custom_dns_url
web_address basic mandatory disabled
Proxy.dns_over_https.custom_dns_url (Custom DNS URL).
Validators:
- custom_dns_url must starts with 'https://' only
Disabled: if provider is Custom

Variables for "foxyproxy"

foxyproxy.proxies (Proxy configuration)

basic

Cette famille contient des listes de bloc de variables.

Variable                                                                                                                  Description                                                                                                              
foxyproxy.proxies.title
string basic mandatory unique multiple
Foxyproxy.proxies.title (Title or Description).
foxyproxy.proxies.color
string basic mandatory
Foxyproxy.proxies.color (Color).
foxyproxy.proxies.type
choice standard mandatory
Foxyproxy.proxies.type (Type).
Choices:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
- PAC URL
- WPAD
- System (use system settings)
- Direct (no proxy)
foxyproxy.proxies.address
string standard mandatory disabled multiple
Foxyproxy.proxies.address (IP address, DNS name, server name).
Default: copy HTTP address if proxy is not "Manual"
Disabled: if type not in:
  • HTTP

  • HTTPS/SSL

  • SOCKS4

  • SOCKS5 | | foxyproxy.proxies.port
    port standard mandatory disabled | Foxyproxy.proxies.port (Port).
    Default: copy HTTP port if proxy is not "Manual"
    Disabled: if type not in:

  • HTTP

  • HTTPS/SSL

  • SOCKS4

  • SOCKS5 | | foxyproxy.proxies.username
    unix_user standard disabled | Foxyproxy.proxies.username (Username).
    Disabled: if type not in:

  • HTTP

  • HTTPS/SSL

  • SOCKS4

  • SOCKS5 | | foxyproxy.proxies.password
    secret basic mandatory hidden disabled | Foxyproxy.proxies.password (Password).
    Hidden: if username is not defined
    Disabled: if type not in:

  • HTTP

  • HTTPS/SSL

  • SOCKS4

  • SOCKS5 | | foxyproxy.proxies.url
    web_address basic mandatory disabled | Foxyproxy.proxies.url.
    Disabled: if type is not in:

  • PAC URL

  • WPAD |

Exemple avec les variables obligatoires non renseignées

proxy:
  auto: https://example.net
  dns_over_https:
    custom_dns_url: https://example.net

Exemple avec tous les variables modifiables

proxy:
  proxy_mode: No proxy
  auto: https://example.net
  no_proxy:
  - .mozilla.org
  - .net.nz
  - 192.168.1.0/24
  prompt_authentication: true
  dns_over_https:
    enable_dns_over_https: false
    provider: Cloudflare
    custom_dns_url: https://example.net
foxyproxy:
  proxies:
  - title: xxx
    color: xxx
    type: Direct (no proxy)
    address:
    - None
    port: '8080'
    username: xxx
    password: xxx
    url: https://example.net