qwebirc Kurulumu İçin Gerekenler ;
Kod
python (2.5 üzeri olmalıdır).
python-twisted, python-twisted-bin, python-twisted-core, python-twisted-runner, python-twisted-names, python-twisted-mail, python-twisted-words ve python-twisted-web (Twisted 8.2.0).
python-zope.interface (8.2.0)
mercurial
openjdk-6
opsiyonel SSL desteği : python-openssl
Aşağıdaki kurulum komutlarını işletim sisteminizin türüne göre çalıştırın. Örneğin biz
Centos işletim sisteminde kurulum gerçekleştirdiğimiz için centos / rhel komutlarını çalıştırıyoruz ;
Centos / RHEL / Fedora için ;
Kod
sudo yum install epel-release
sudo yum -y install python-twisted
sudo yum -y install mercurial
sudo yum install java-1.6.0-openjdk-devel
sudo yum -y install libffi-devel
sudo yum -y install openssl-devel
sudo yum -y install python-devel
sudo yum -y install python-pip
Gerekebilir (ssl erişimlerinde) ;
Kod
sudo pip install pyopenssl --upgrade
Ubuntu / Debian için ;
Kod
apt-get install python-twisted
apt-get install python-zope.interface
apt-get install mercurial
Ardından qwebirc sunucumuza çekiyoruz ve düzenliyoruz ;
Kod
hg clone https://bitbucket.org/qwebirc/qwebirc
cd qwebirc
mv config.py.example config.py
nano -w config.py
Düzenlenmesi gereken örnek
config.py kısımları ;
Kod
IRCSERVER, IRCPORT = "irckuruluolansunucuipadresi", 6667
REALNAME = "http://irc.sunucunuz.com/"
IDENT = "webchat"
OUTGOING_IP = "127.0.0.1"
WEBIRC_MODE = "webirc"
WEBIRC_PASSWORD = "ŞİFRE"
CGIIRC_STRING = "CGIIRC"
BASE_URL = "http://irc.sunucunuz.com/"
Örnek config.py dosyası ;
PHP- Kodu
# qwebirc configuration file
#
# This a Python program that is imported, so feel free to use any
# Python here!
#
# Note that some changes to this configuration file require re-running
# compile.py and others require restarting qwebirc (and some require
# both!)
# If in doubt always re-compile and restart.
# The following line is required, don't remove it!
from qwebirc.config_options import *
# IRC OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: IRCSERVER
# Hostname (or IP address) of IRC server to connect to.
# OPTION: IRCPORT
# Port of IRC server to connect to.
IRCSERVER, IRCPORT = "SUNUCUİPADRESİ", 6667
# OPTION: SSLPORT
# SSL port of IRC server to connect to.
# If this option is uncommented it will override IRCPORT.
#SSLPORT = 6697
# OPTION: REALNAME
# The realname field of IRC clients will be set to this value.
REALNAME = "http://netforumlari.com/"
# OPTION: IDENT
# ident to use on irc, possible values include:
# - a string, e.g. IDENT = "webchat"
# - the literal value IDENT_HEX, this will set the ident to the
# a hexadecimal version of the users IP address, e.g
# IDENT = IDENT_HEX
# - the literal value IDENT_NICKNAME, this will use the users
# supplied nickname as their ident.
IDENT = "webchat"
# OPTION: OUTGOING_IP
# The IP address to bind to when connecting to the IRC server.
#
# This will not change the IP address that qwebirc listens on.
# You will need to call run.py with the --ip/-i option if you
# want that.
#OUTGOING_IP = "127.0.0.1"
# OPTION: WEBIRC_MODE
# This option controls how the IP/hostname of the connecting
# browser will be sent to IRC.
#
# Possible values include:
# - the string "webirc", i.e. WEBIRC_MODE = "webirc"
# Use WEBIRC type blocks, with a server configuration of
# the following style:
#
# cgiirc {
# type webirc;
# hostname <qwebirc's ip address>;
# password <password>;
# };
#
# Remember to set the WEBIRC_PASSWORD value to be the
# same as <password>.
# - the string "cgiirc", i.e. WEBIRC_MODE = "cgiirc"
# old style CGIIRC command, set CGIIRC_STRING to be the
# command used to set the ip/hostname, and set
# WEBIRC_PASSWORD to be the password used in the server's
# configuration file.
# - the literal value None, i.e. WEBIRC_MODE = None
# Send the IP and hostname in the realname field, overrides
# the REALNAME option.
WEBIRC_MODE = None
# OPTION: WEBIRC_PASSWORD
# Used for WEBIRC_MODE webirc and cgiirc, see WEBIRC_MODE
# option documentation.
#WEBIRC_PASSWORD = "fish"
# OPTION: CGIIRC_STRING
# Command sent to IRC server in for cgiirc WEBIRC_MODE.
# See WEBIRC_MODE option documentation.
#CGIIRC_STRING = "CGIIRC"
# UI OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: BASE_URL
# URL that this qwebirc instance will be available at, add the
# port number if your instance runs on a port other than 80.
BASE_URL = "http://netforumlari.com/"
# OPTION: NETWORK_NAME
# The name of your IRC network, displayed throughout the
# application.
NETWORK_NAME = "NetForumlari"
# OPTION: ANALYTICS_HTML
# If you have an analytics service, you can paste the HTML
# between the triple quotes.
#ANALYTICS_HTML = """
#"""
# OPTION: APP_TITLE
# The title of the application in the web browser.
APP_TITLE = NETWORK_NAME + " Web IRC"
# NICKNAME VALIDATION OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: NICKNAME_VALIDATE
# If True then user nicknames will be validated according to
# the configuration below, otherwise they will be passed
# directly to the ircd.
NICKNAME_VALIDATE = True
# OPTION: NICKNAME_VALID_FIRST_CHAR
# A string containing valid characters for the first letter of
# a nickname.
# Default is as in RFC1459.
import string
NICKNAME_VALID_FIRST_CHAR = string.letters + "_[]{}`^\\|"
# OPTION: NICKNAME_VALID_SUBSEQUENT_CHAR
# A string containing valid characters for the rest of the
# nickname.
NICKNAME_VALID_SUBSEQUENT_CHARS = NICKNAME_VALID_FIRST_CHAR + string.digits + "-"
# OPTION: NICKNAME_MINIMUM_LENGTH
# Minimum characters permitted in a nickname on your network.
NICKNAME_MINIMUM_LENGTH = 2
# OPTION: NICKNAME_MAXIMUM_LENGTH
# Maximum characters permitted in a nickname on your network.
# Ideally we'd extract this from the ircd, but we need to know
# before we connect.
NICKNAME_MAXIMUM_LENGTH = 15
# FEEDBACK OPTIONS
# ---------------------------------------------------------------------
#
# These options control the feedback module, which allows users to
# send feedback directly from qwebirc (via email).
#
# OPTION: FEEDBACK_FROM
# E-mail address that feedback will originate from.
FEEDBACK_FROM = "[email protected]"
# OPTION: FEEDBACK_TO:
# E-mail address that feedback will be sent to.
FEEDBACK_TO = "[email protected]"
# OPTION: FEEDBACK_SMTP_HOST
# Hostname/IP address of SMTP server feedback will be sent
# through.
# OPTION: FEEDBACK_SMTP_PORT
# Port of SMTP server feedback will be sent through.
FEEDBACK_SMTP_HOST, FEEDBACK_SMTP_PORT = "127.0.0.1", 25
# ADMIN ENGINE OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: ADMIN_ENGINE_HOSTS:
# List of IP addresses to allow onto the admin engine at
# http://instance/adminengine
ADMIN_ENGINE_HOSTS = ["127.0.0.1"]
# PROXY OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: FORWARDED_FOR_HEADER
# If you're using a proxy that passes through a forwarded-for
# header set this option to the header name, also set
# FORWARDED_FOR_IPS.
#FORWARDED_FOR_HEADER="x-forwarded-for"
# OPTION: FORWARDED_FOR_IPS
# This option specifies the IP addresses that forwarded-for
# headers will be accepted from.
#FORWARDED_FOR_IPS=["127.0.0.1"]
# EXECUTION OPTIONS
# ---------------------------------------------------------------------
#
# OPTION: ARGS (optional)
# These arguments will be used as if qwebirc was run directly
# with them, see run.py --help for a list of options.
#ARGS = "-n -p 3989"
# OPTION: SYSLOG_ADDR (optional)
# Used in conjunction with util/syslog.py and -s option.
# This option specifies the address and port that syslog
# datagrams will be sent to.
#SYSLOG_ADDR = "127.0.0.1", 514
# TUNEABLE VALUES
# ---------------------------------------------------------------------
#
# You probably don't want to fiddle with these unless you really know
# what you're doing...
# OPTION: UPDATE_FREQ
# Maximum rate (in seconds) at which updates will be propagated
# to clients
UPDATE_FREQ = 0.5
# OPTION: MAXBUFLEN
# Maximum client AJAX recieve buffer size (in bytes), if this
# buffer size is exceeded then the client will be disconnected.
# This value should match the client sendq size in your ircd's
# configuration.
MAXBUFLEN = 100000
# OPTION: MAXSUBSCRIPTIONS
# Maximum amount of 'subscriptions' to a specific AJAX channel,
# i.e. an IRC connection.
# In theory with a value greater than one you can connect more
# than one web IRC client to the same IRC connection, ala
# irssi-proxy.
MAXSUBSCRIPTIONS = 1
# OPTION: MAXLINELEN
# If the client sends a line greater than MAXLINELEN (in bytes)
# then they will be disconnected.
# Note that IRC normally silently drops messages >=512 bytes.
MAXLINELEN = 600
# OPTION: DNS_TIMEOUT
# DNS requests that do not respond within DNS_TIMEOUT seconds
# will be cancelled.
DNS_TIMEOUT = 5
# OPTION: HTTP_AJAX_REQUEST_TIMEOUT
# Connections made to the AJAX engine are closed after this
# this many seconds.
# Note that this value is intimately linked with the client
# AJAX code at this time, changing it will result in bad
# things happening.
HTTP_AJAX_REQUEST_TIMEOUT = 30
# OPTION: HTTP_REQUEST_TIMEOUT
# Connections made to everything but the AJAX engine will
# be closed after this many seconds, including connections
# that haven't started/completed an HTTP request.
HTTP_REQUEST_TIMEOUT = 5
# OPTION: STATIC_BASE_URL
# This value is used to build the URL for all static HTTP
# requests.
# You'd find this useful if you're running multiple qwebirc
# instances on the same host.
STATIC_BASE_URL = ""
# OPTION: DYNAMIC_BASE_URL
# This value is used to build the URL for all dynamic HTTP
# requests.
# You'd find this useful if you're running multiple qwebirc
# instances on the same host.
DYNAMIC_BASE_URL = ""
# OPTION: CONNECTION_RESOLVER
# A list of (ip, port) tuples of resolvers to use for looking
# the SRV record(s) used for connecting to the name set in
# IRC_SERVER.
# The default value is None, and in this case qwebirc will use
# the system's default resolver(s).
CONNECTION_RESOLVER = None
# OPTION: HELP_URL
# Shown to the user if they type /HELP or click on the Help!
# option in the user interface.
HELP_URL = ""
# QUAKENET SPECIFIC VALUES
# ---------------------------------------------------------------------
#
# These values are of no interest if you're not QuakeNet.
# At present they still need to be set, this will change soon.
#
# OPTION: HMACKEY
# Shared key to use with hmac WEBIRC_MODE.
HMACKEY = "mrmoo"
# OPTION: HMACTEMPORAL
# Divisor used for modulo HMAC timestamp generation.
HMACTEMPORAL = 30
# OPTION: AUTHGATEDOMAIN
# Domain accepted inside authgate tickets.
AUTHGATEDOMAIN = "webchat_test"
# OPTION: QTICKETKEY
# Key shared with the authgate that is used to decrypt
# qtickets.
QTICKETKEY = "boo"
# OPTION: AUTH_SERVICE
# Service that auth commands are sent to. Also used to check
# responses from said service.
AUTH_SERVICE = "[email protected]"
# OPTION: AUTH_OK_REGEX
# JavaScript regular expression that should match when
# AUTH_SERVICE has returned an acceptable response to
# authentication.
AUTH_OK_REGEX = "^You are now logged in as [^ ]+\\.$"
# OPTION: AUTHGATEPROVIDER
# Authgate module to use, normally imported directly.
# dummyauthgate does nothing.
import dummyauthgate as AUTHGATEPROVIDER
9090 portunu açıyoruz (centos,rhel,fedora için) ;
Kod
service iptables stop
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
service iptables save
service iptables start
Ardından compile ederek qwebirc başlatıyoruz ;
Kod
./compile.py
./run.py
Web üzerinden veya mobilden erişiyoruz ;
http://sunucuipadresi:9090/