NB: This document is not finished so if you are reading this please bear with me. Thes instructions are what i am using/will use for quantumwarp.com
This might of been done in the past but I want to explain in clear terms on how the Joomla Update Enviroment works, the implementations I have found and then how I implemented my own Joomla Update Server so i can get on with what I really wanted to do in the first place which is to develop joomla extensions. There is some documentation but no real practical gold standard setup where someone says do this, use this software. Akeeba Release System is what a lot of people use but this is a difficult program to master. At the bottom of this page you will see a whole raft of resources which i used to put this article together so if there is something I have missed you might find help in one of those links and then let me know. These instructions will serve as template for setting up your own Joomla Update Server from scratch, How to implement this in your extensions and will be what I use here on quantumwarp.com and my extensions. I might also use this for non-joomla extensions if possible.
This article will cover topics such as:
I will now break down the update enviroment into their different constituent parts that you might need. Your installation should do all or some of these depending on your configuration. Also you might have one piece of software do all of these or a combination of softwares acting as one. A Joomla Update Server can be a combination of the following items but a lot of people just think the server just hands out the XML update streams, end users dont, they expect the file aswell
These are the tables in the clients Joomla installation, not the update server.
So far I have discovered there are several methods so far for handling commercial software updating. These are an overview as there are probably different ways of implementing these.
You can use a different update stream for commercial and free extensions but you can potential use these methods to allow the supply of both types using the same update stream. The difference is just in the request, the commercial ones have extra variables being sent.
NB: `jos_` is the fictional database prefix I am using.
In this worked example I follow how RSFirewall manages its licensing information. In particular this is an example of how the update url is manipulated upon 'update this extension' submission, this will make more sense after following this through.
<updateservers> <server type="extension" priority="1" name="RSFirewall!">https://www.rsjoomla.com/updates/com_rsfirewall/Component/com_rsfirewall.xml</server> </updateservers>
I have not entered a license key as this is optional and because I am exploring this 'Shared XML/Manipulate Update Stream' method. i.e. you get a different version dependent on the license key or lack off. The different outcomes are explored later.
<updates> <update> <name>RSFirewall! 2.12.1</name> <description></description> <element>com_rsfirewall</element> <type>component</type> <folder></folder> <version>2.12.1</version> <infourl title="RSFirewall! 2.12.1">https://www.rsjoomla.com/support/documentation/rsfirewall-user-guide/changelog.html</infourl> <downloads> <downloadurl type="full" format="">https://www.rsjoomla.com/updates/com_rsfirewall/Component/com_rsfirewall.zip</downloadurl> </downloads> <tags> <tag>stable</tag> </tags> <maintainer>RSJoomla!</maintainer> <maintainerurl>https://www.rsjoomla.com/</maintainerurl> <section>Updates</section> <targetplatform name="joomla" version=".*" /> <client>administrator</client> </update> </updates>
<?php /** * @package RSFirewall! * @copyright (C) 2015 www.rsjoomla.com * @license GPL, http://www.gnu.org/copyleft/gpl.html */ defined('_JEXEC') or die; class plgInstallerRsfirewall extends JPlugin { public function onInstallerBeforePackageDownload(&$url, &$headers) { $uri = JUri::getInstance($url); $parts = explode('/', $uri->getPath()); if ($uri->getHost() == 'www.rsjoomla.com' && in_array('com_rsfirewall', $parts)) { if (!file_exists(JPATH_ADMINISTRATOR.'/components/com_rsfirewall/helpers/config.php')) { return; } if (!file_exists(JPATH_ADMINISTRATOR.'/components/com_rsfirewall/helpers/version.php')) { return; } // Load our config require_once JPATH_ADMINISTRATOR.'/components/com_rsfirewall/helpers/config.php'; // Load our version require_once JPATH_ADMINISTRATOR.'/components/com_rsfirewall/helpers/version.php'; // Load language JFactory::getLanguage()->load('plg_installer_rsfirewall'); // Get the version $version = new RSFirewallVersion; // Get the update code $code = RSFirewallConfig::getInstance()->get('code'); // No code added if (!strlen($code)) { JFactory::getApplication()->enqueueMessage(JText::_('PLG_INSTALLER_RSFIREWALL_MISSING_UPDATE_CODE'), 'warning'); return; } // Code length is incorrect if (strlen($code) != 20) { JFactory::getApplication()->enqueueMessage(JText::_('PLG_INSTALLER_RSFIREWALL_INCORRECT_CODE'), 'warning'); return; } // Compute the update hash $uri->setVar('hash', md5($code.$version->key)); $uri->setVar('domain', JUri::getInstance()->getHost()); $uri->setVar('code', $code); $url = $uri->toString(); } } }
https://www.rsjoomla.com/updates/com_rsfirewall/Component/com_rsfirewall.zip
"https://www.rsjoomla.com/updates/com_rsfirewall/Component/com_rsfirewall.zip?hash=f0588314d3680f6c15c71c7FF394129d&domain=localhost&code=xxxxxxxxxxxxxxxxxxxx"
hash = a MD5 hash of the RSFirewall Version (local) and the license key
domain = domain that RSFirewall is installed on
code = license key
The remote server responds with various error messages in text. I do not know if this is where Joomla gets the reponse messages, styles them as errors, and them displays them at the top of the updates page, it probably is, or if it is specific to RSFirewall becasue it has installed some extra code.
Failed to download package. Download it and install manually from https://www.rsjoomla.com/updates/com_rsfirewall/Component/com_rsfirewall.zip.The text response from the RSJoomla Update Server is "The update code was not found in our database."
This extension cannot be downloaded directly; this is a commercial product and the only way to download it is either through your RSJoomla! account or automatically by Joomla! updates once you supply your license code in the extension's configuration.<br /> More info <a href='https://www.rsjoomla.com/support/documentation/general-faq/where-do-i-find-my-license-code-.html'>here</a>.
PLG_INSTALLER_RSFIREWALL_INCORRECT_CODE="Your update code appears to be incorrect. Please make sure you've copied it correctly. <strong><a href="/_QQ_"https://www.rsjoomla.com/support/documentation/general-faq/where-do-i-find-my-license-code-.html"_QQ_" target="_QQ_"_blank"_QQ_">More information</a></strong>"
PLG_INSTALLER_RSFIREWALL_INCORRECT_CODE
D:\websites\htdocs\quantumwarp.com\plugins\installer\rsfirewall\rsfirewall.php
These are articles that I have found that all relate to the Joomla Release System and will help me undertand how to implement and use it.
These are extensions that handle the XML and the actual download of the software. These systems dont have inbuilt subscription systems and the functionality varies.
Create your XML files using a component rather than doing them manually.
This is related, you need to make sure your plugins are compliant with Joomla's coding practice including using 'Tabs' which I hate.
Again these are along the same line as this article, so where better to put them to complete the circle. These Joomla extensions will notfy you of updates to your Joomla installation and it's extensions with various options. The inbuilt Joomla update notification system plugin runs every couple of hours and is the first thing I turn off. When developing multiple websites you dont want mutiple emails from multiple websites weveryday telling you the same thing. The Joomla notification plugin only notfies you of a Joomla platform update and nto the extensions.
List the basic mechanisim in my words
To Do list
My Update System
com_updateserver Notes
Update Server Options
These are my basic notes I will use for reference:
NB:
When you enable SPF either globally or on an indvidual cPanel account the default record uses a soft fail switch (~all) and this is not the best setting for prevent spam being sent from or on behalf of your server.
cPanel offers no options in WHM to change this default action, but there is a well known workaround which does seem to have official support and that is to alter the 'standard' Zone template.
If you do not know the syntax this will become a difficult thing to set up. So to make things easier below you will see the 'standard' Zone Template taken from cPanel v82.0.9 with the correct line added at the bottom for a 'Hard Fail' SPF record.
; cPanel %cpversion% ; Zone file for %domain% $TTL %ttl% @ %nsttl% IN SOA %nameserver%. %rpemail%. ( %serial% ; serial, todays date+todays 3600 ; refresh, seconds 1800 ; retry, seconds 1209600 ; expire, seconds 86400 ) ; minimum, seconds %domain%. %nsttl% IN NS %nameserver%. %domain%. %nsttl% IN NS %nameserver2%. %domain%. %nsttl% IN NS %nameserver3%. %domain%. %nsttl% IN NS %nameserver4%. %nameserverentry%. IN A %nameservera% %nameserverentry2%. IN A %nameservera2% %nameserverentry3%. IN A %nameservera3% %nameserverentry4%. IN A %nameservera4% %domain%. IN A %ip% %domain%. IN AAAA %ipv6% %domain%. IN MX 0 %domain%. mail IN CNAME %domain%. www IN CNAME %domain%. ftp IN CNAME %domain%. %domain%. %ttl% IN TXT "v=spf1 +a +mx +ip4:%ip% -all"
This will generate a SPF record as follows:
v=spf1 +a +mx +ip4:xxx.xxx.xxx.xxx -all
Other Examples
%domain%. %ttl% IN TXT "v=spf1 +a +mx +ip4:xxx.xxx.xxx.xxx +include:relaydns.com -all" %domain%. %ttl% IN TXT "v=spf1 +a +mx +ip4:xxx.xxx.xxx.xxx +include:%domain% -all" %domain%. %ttl% IN TXT "v=spf1 +a +mx +ip4:%ip% +include:%domain% -all" %domain%. %ttl% IN TXT "v=spf1 +a +mx +ip4:%ip% -all"
NB: Replace xxx.xxx.xxx.xxx with a real IPv4 IP
Notes
Once you have got your server working, like most Windows users you want to be able to login to the root file system using your favourite FTP program so to that end there are a few hoops you have to jump through first.
Allow SSH Access
Remove SSH Access
For reference this is the information I got from my support people while trying to fox this.
Your server is not IP restricted right now, with dynamic IP address we can not restrict server root access as every time your IP address changed you will need to contact us in order to allow new IP address.
Restricting server root access is completely different from server firewall, in order to restrict server root access we will need to add your static IP address for host access control, it can be done from WHM Home »Security Center »Host Access Control, here you will need to add entries like below,sshd IP_from_which_you_want_to_access_server allow
Till the time you are using dynamic IP address [and root level restriction disabled], you can keep whitelisting IP address in firewall using option Home »Plugins »ConfigServer Security & Firewall
here you will just need to enter IP address just besides the button 'Quick allow'.
These might be the firewall rules added, but I don't know how they are entered.
On my fresh cPanel server I configured the following settings to make things like cpanel.quantumwarp.com, webmail.quantumwarp.com require https, i.e. cPanel webservices access should be HTTPS enforced.
After I did this, I typed into my address bar cpanel.quantumwarp.com (note no protocol, which implies http://) I got the following error:
The page isn't redirecting properly
So I contacted my server support people and got the following reply
We have tried to set the requiressl and always_redirect_to_ssl for the cPanel proxy domain like cpanel.quantumwarp.com in cPanel configuration, after setting up it cpanel.quantumwarp.com started redirecting to https://cpanel.quantumwarp.com but after that its started showing "Too Many Redirection" error.
Also we tried to force redirect the proxy subdomains to https in apache configuration but no success.
We have now forwarded it to cPanel support team and we will update you once we receive an update from them.
And here is the response from the cPanel Team
We have received below response from cPanel support team.
=============
Thank you for your patience as I performed my investigation. The Apache headers module is not installed on your server:
-=-=-=-=-=-=-=-=-=-=-=
[19:11:24 xxxx root@88888888 ~]cPs# rpm -qa | grep mod_headers
[19:11:26 xxxx root@88888888 ~]cPs#
-=-=-=-=-=-=-=-=-=-=-=
The most common issue that occurs when the module is missing is infinite redirect loops when accessing service subdomains. However, it is likely the non-redirection issue is occurring due to the missing module.
==========
We have now installed the missing apache module and now below links are redirecting to https
Install mod_headers via EasyApache4
The only difference to default is that I have restricted cpanel web services and webdisk by disabling TLSv1_1 (as pere zeros and one)
These are the current changes I have made. The rest of the relevant cipher settings are left as default
This is a collection of resources and software I have come across to help me reset Windows 10 profile passwords. These techniques will also work on other versions of Windows but I am aiming and Windows 10 with my examples.
- Updated to [OpenWrt Wiki] OpenWrt 21.02.1 - Service Release - 25 October 2021
- This is currently on for pre-DSA firmwares, but I am sure it can be adapted
- The BT Home Hub 5A WiFi driver is not capable of bridge mode so we use Client mode and this is why we have to use RelayD to perform a type of masquerading on the WiFi client IP.
- I do not know if the new DSA firmwares will allow proper bridging without RelayD
Disclaimer: This setup has not been tested with IPv6 or extensively tested in the wild apart from my setup here, so if you are relying on this being secure you need to test it yourself before putting it into service
The following instructions will turn your BT Home Hub 5A/Plusnet One OpenWRT router into a WIFI client which has the following features:
Why?
On my test bench where I work with client laptops and PCs i need a secure network so infected computers do not attack my computers with virus, but I also have a netowrk laser printer that is not wifi capable. So i connect my printer to the red socket on my primary network allowing me to print whilst i can use the yellow ethernet sockets for an isolated network for working on client machines.
This configuration can be adapted for your needs, some people might only want 'Bridge Mode' and by following my instructions you can have that. I quite like the fact you can change the setup of the networks by jsut changing the VLAN tags (except for the AP, i need to check this)
Requirements
Here we are going to set the groundwork for this project.
I am going to use the 5GHz radio because my parent router is a 5GHz router and this will give much better connection speed than the 2.4GHz.
We now are going to configure the OpenWRT to have a secure NAT'ed network and this will run on the yellow yellow LAN sockets. Make sure you follow each section below in order.
My parent WiFi SSID is openwrt_5g
These rules only need a few changes because they are already geared up for NAT and all of the preconfigured Firewall rules are applied to these zones so we should keep them for the NAT WIFI Client
We will be re-using the rules that are already present to preserve all of the preconfigured rules for extra security. They might not all be needed, however if you do not want any of them, then delete the rules and just add the new zones with the settings below.
Edit LAN Zone
Edit WAN Zone
You have now configured your OpenWRT router to act as a WiFi client on your parent network via NAT on the yellow ethernet sockets with the interfaces and firewall rules are clearly labelled
This allows us to extend your parent network to your OpenWRT router. This will work alongside the NAT WiFi Client network we just configured or as a standalone by just using the red socket on a separate VLAN.
- relayd does not currently support IPv6
- relayd is NOT a true bridge
- How the 'Relay Bridge' works
- Masquerade = NAT.
- Not all OpenWRT devices have bridge capable drivers.
- The 'Relay Bridge' bridges 2 networks together because OpenWRT cannot do this natively.
- The 'Relay Bridge' masquerades the Interface IP on the donour network (i.e. WWAN) to be able to pass and route the traffic to the target network (i.e. BRIDGE_LAN).
- The 'Relay Bridge' allows some broadcast traffic through the networks, but it is limited to DHCP (I think).
- The local addresses on the BRIDGE_LAN even though they are on the same subnet as the WWAN, the traffic is always masqueraded through the WWAN IP.
- This behaviour can cause issues with routing specific IPs with kit such as pfSense being given the WWAN Ip and not the Device IP.
According to OpenWRT, the open source drivers of this router they use do not support native Client Bridge so you have to use a software workaround using relayd which required the following packages to be installed:
A useful video to watch, the OpenWRT version is an old version but it should help with any issues, How to set up openwrt to be a wireless receiver [Bridge] with Relayd - YouTube
Extra software/packages are required to bridge the networks. We will now install them.
We now need to create a firewall zone for the bridge LAN network
The bridge network needs interfaces creating so the router know where to talk to the network.
This is the invisible routing node that relayd provides but it does appear as an interface.
Cannot access router from BRIDGE_LAN
- With this configuration you cannot access the router from the BRIDGE_LAN
- If you add an IP to the BRIDGE_RELAY or BRIDGE_LAN routing will break.
- If anyone works out the solution please let me know.
If you have spent time configuring your router and find that you need to connect BRIDGE_LAN to your 'Parent Network' via the ethernet because of a bad WiFi signal or you just need more speed then that is easy to do.
You cannot have the router sending traffic to the 'Parent Network' whilst getting the 'Parent Network' from the ethernet as this will casue a broadcast storm so we need to correct this with the minimum intervention.
I will be investigating VLANs and how to apply them to my 'Primary Router' and it's WiFi so this network is further isolated.
I now need to isolate the NAT network (nat_lan) from my main network because both networks are present on the OpenWRT router, and OpenWRT will always try and figure out the best route for all traffic which is undesirable in this case.
This is different from Wireless client isolation.
Solution
The fix is simple, we need to configure the Firewall Traffic Rules by adding some additional rules.
Adding a Firewall Rule
- A copy and paste list is at the bottom for those of you more familiar with OpenWrt
- Add each following rules, in order, into LuCi.
- The following rules need to be added at the top of the 'Firewall - Traffic Rules' List (LuCi)
- When you re-order rules in LuCi you need to click 'Save & Apply'
Block 'Parent Network' IPs
Currently if you ping an IP address on the 'Parent Network' from the NAT_LAN network you will get a response because the device on the 'Parent Network' will only see the IP address of the officerouter (192.168.1.2) and will not know the difference (IP Masquerading). Not only can you ping devices, you can make connections for such things as file sharing and in these modern times if an encryption malware can see a share, it will encrypt it.
Allow LuCI from the WAN
These rules just allow access to the officerouter's LuCI from the 'Parent Network' via the WAN route on 192.168.1.2
This a copy on the whole file (/etc/config/firewall) to make things easier and quicker.
Once you have updated your firewall config reboot your router.
config defaults option input 'ACCEPT' option output 'ACCEPT' option forward 'REJECT' option synflood_protect '1' config zone option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' option name 'nat_lan' list network 'nat_lan' config zone option name 'wan' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' list network 'wwan' config forwarding option dest 'wan' option src 'nat_lan' config rule option src 'nat_lan' option target 'REJECT' option dest 'wan' list dest_ip '10.0.0.0/8' option name 'Block - WAN - Class A IPs' list proto 'all' config rule option src 'nat_lan' option target 'REJECT' option dest 'wan' list dest_ip '172.16.0.0/12' option name 'Block - WAN - Class B IPs' list proto 'all' config rule option target 'REJECT' option src 'nat_lan' option dest 'wan' list dest_ip '192.168.0.0/16' option name 'Block - WAN - Class C IPs' list proto 'all' config rule option target 'ACCEPT' option proto 'tcp' option dest_port '80' option src 'wan' list dest_ip '10.0.0.3' option name 'Allow - WAN - LuCI (HTTP) ' config rule option target 'ACCEPT' option proto 'tcp' option dest_port '443' option src 'wan' list dest_ip '10.0.0.3' option name 'Allow - WAN - LuCI (HTTPS)' config rule option target 'ACCEPT' option src 'wan' option proto 'tcp' option dest_port '22' list dest_ip '10.0.0.3' option name 'Allow - WAN - SSH' config rule option name 'Allow-DHCP-Renew' option src 'wan' option proto 'udp' option dest_port '68' option target 'ACCEPT' option family 'ipv4' config rule option name 'Allow-Ping' option src 'wan' option proto 'icmp' option icmp_type 'echo-request' option family 'ipv4' option target 'ACCEPT' config rule option name 'Allow-IGMP' option src 'wan' option proto 'igmp' option family 'ipv4' option target 'ACCEPT' config rule option name 'Allow-DHCPv6' option src 'wan' option proto 'udp' option src_ip 'fc00::/6' option dest_ip 'fc00::/6' option dest_port '546' option family 'ipv6' option target 'ACCEPT' config rule option name 'Allow-MLD' option src 'wan' option proto 'icmp' option src_ip 'fe80::/10' list icmp_type '130/0' list icmp_type '131/0' list icmp_type '132/0' list icmp_type '143/0' option family 'ipv6' option target 'ACCEPT' config rule option name 'Allow-ICMPv6-Input' option src 'wan' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' list icmp_type 'router-solicitation' list icmp_type 'neighbour-solicitation' list icmp_type 'router-advertisement' list icmp_type 'neighbour-advertisement' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT' config rule option name 'Allow-ICMPv6-Forward' option src 'wan' option dest '*' option proto 'icmp' list icmp_type 'echo-request' list icmp_type 'echo-reply' list icmp_type 'destination-unreachable' list icmp_type 'packet-too-big' list icmp_type 'time-exceeded' list icmp_type 'bad-header' list icmp_type 'unknown-header-type' option limit '1000/sec' option family 'ipv6' option target 'ACCEPT' config rule option name 'Allow-IPSec-ESP' option src 'wan' option proto 'esp' option target 'ACCEPT' option dest 'nat_lan' config rule option name 'Allow-ISAKMP' option src 'wan' option dest_port '500' option proto 'udp' option target 'ACCEPT' option dest 'nat_lan' config rule option name 'Support-UDP-Traceroute' option src 'wan' option dest_port '33434:33689' option proto 'udp' option family 'ipv4' option target 'REJECT' option enabled '0' config include option path '/etc/firewall.user' config zone option name 'bridge_lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' list network 'bridge_lan' list network 'bridge_relay' config forwarding option src 'bridge_lan' option dest 'wan' config forwarding option src 'wan' option dest 'bridge_lan'
To get the most out of this tweaked OpenWRT router I am now going to add a guest WiFi network called 'Clients' which will be attached to the NAT network affording it all of the same isolation as that network.
We need to create a an AP on the 2.4GHz kit and bridge it to the NAT network
In pre OpenWrt 20.00/pre-DSA we were able to join the eth0.1 and wlan1 networks directly with in the nat_lan interface but this now not currently possible because it requires extra coding to be implemented in OpenWrt 20.00+ by the OpenWrt team, if ever.
These settings were located at (Network-->Interfaces-->NAT_LAN (br-nat_lan)-->Edit -->Common Configuration-->Physical Settings)
It should be noted when you try and setup a bridge device (Network-->Interfaces-->Devices) you are told that you cannot bridge WiFi and ethernet as you once did. Look at the 'Bridge ports' dropdown.
To resolve the missing bridge functionality we have to change the nat_lan device from eth0.1 to br-lan which also sort of follows the rule above. You cannot connect the WiFI to the following devices and have any routing happen. I also thinky the device must be a 'Bridge Device'.
- Traffic will now flow from the wireless on wlan0. My understanding that this traffic by default on br-lan should be on vlan1 so should still be isolated from eth0.2
- Rebooting the Router several times can sometimes help. It possible it to do with assigning new MAC addresses (my guess)
We are going to create a new 'Bridged device' (Virtualised Interface) that we can use to sit the WiFi and LAN on.
- There is currently a bug where if I delete br-lan and use br-nat_lan (or other name) to connect to eth0.1 then routing on the ethernet stops. This could well be to do with the migration to DSA and that br-lan is hardcoded somewhere to talk to eth0.1 so only use the method below for other VLANs and leave br-lan as is. Maybe a MAC addresses issue.
- You cannot have 2 'Bridge devices' on the same 'Bridge port(s)' as it breaks routing.
- You cannot have a 'Client mode' and an 'AP point' defined on the same Wireless interface, this breaks routing.
Notes
Name the VLANs for easy management
By changing the VLANs to which the ethernet socket belongs to you can change their network assignment.
There are 2 options to select from and just depends on what configuration your want
Option 1
All of the yellow sockets are on your secure 'clients' network and the red socket is on your private network.
Option 2
All of the yellow sockets are on your 'Private' network and the red socket ins on the 'clients network
If all is working set your admin password
I advise you to run through the following test to make sure that the different networks are blocked from each other as they should be before trusting this setup.
This are notes for a workaround for BT Home Hub 5A / Plusnet One to be able to access the LuCI admin and SSH services on the OpenWRT router on the bridged network.
General
Tutorials
Firewall
Distributed Switch Archeitecture (DSA)
This is replacing swconfig which uses the LuCI item (Network --> Switch)
Specifies the wired ports to attach to this bridge. In order to attach wireless networks, choose the associated interface as network in the wireless settings.
The vlan settings back in the days (eth0.1, eth0.2 and so on) where the
only way to separate the ports of the switch. With DSA the vlan hack
isn't required any longer. The whole idea of DSA is to expose each
switch port as a network device.
Mathias
Network
Bridge Tutorials
WiFi/Wireless
Still got questions, then hopefully they should be answered here. This is basically the research I used to make this series of articles.
General Alias Articles
Profile Images
Delete a Gmail profile picture
Forwarding Gmail email
Migrate my Android phone to new Gmail account
Delete an Android Calendar.
Google Play - You Don't Have Any Devices
Wipe contacts on my android phone but not from my Google account
Android Samsung Notes / S-Memo
How to Sync Google Calendar with Outlook
Google Play how to see my purchased apps
Gmail Aliases
Moving Google Services to another account
Moving Google Analytics Property
YouTube Channel
Google Maps vs Google Places
Feedburner
Moving an xbox profile
Move an email alias between Microsoft accounts
There is an element in risk because the aliases become available immediately after release or up to 30 days. Read these articles to decide.
Microsoft/Outlook.com aliases
Change Xbox Gamertag
Xbox Gamerpics
Installing Skype (not from the store)
I do not want to install skpe from the store because I do not want to login into windows with my Microsoft account.
Delete a Skype account
Things have changed now. If you have an old skype account you have to link it to a Microsoft account and then delete the Microsoft account which will delete both.
Change a Skype Username
The answer is you cannot. It is tied into your Microsoft account. I do not know if changing your primary alias will change your skype username.
What is my Skype ID
Multi Skype
outlook.com emails going into spam
Where to view my Microsoft/Xbox support requests ?
Close a Yahoo Account
Delete a Flickr Account
You can delete a Flickr account without deleting your Yahoo account and then create a new Flickr account if you want.
Forward Yahoo email
Switch between Classic and Basic Yahoo Mail
Yahoo Aliases
Flickr General
Change Flickr Screen Name / Real Name
Facebook app namespace is “Already used by some other app”
When I followed the instructions from EasyBlog I got this error. It is caused by the namespace easyblogapp is already used and you need to add your website.
Facebook app namespace is "Already used by some other app" - Stack Overflow
and
why I am unable to add apps domain to my app ? | Facebook Help Community | Facebook
Create a Facebook Page
Delete posts from Facebook
Facebook Instant Articles
General
Username
Gravatar
Change a GitHub username
Disqus
OneSignal
So your blog is now all setup, you have you Online Social Identities at the ready, autoposting and other integrations are all done and the question you are asking is: What now?
I will outline some of my thoughts on what is next but you have to appreciate that I have only just got to this stage myself and I have used the process of building my own blog to create these instructions to help me and othersas I go.
What not to do
This is important to get a well liked blog by both Google and the general internet public:
Don’t be scared to changes things
Social Marketing / SEM
Now you have your site up and running your need to advertise it or push it, 'just because you build it, does not mean they will come’. It will take a while for Google to find/index your new site/blog and this is especially true for new domains.
Newsletters
Monetise
General Advertising methods will be discussed in another tutorial.
Just some general ideas that need a mention. I might add to this as I go.
long articles: pagination / long page / separate articles
when you have to split an article into many parts, it is acceptable to use 1 folder as you might reference the same image through the article, imagine an article like 1 large word document.
All images and media will be stored in
This is a worked example of blog attribution ssing this orginal source Article - Repair a Broken Ethernet Plug: 10 Steps (with Pictures) | instructables
I will not descibe how to config every feature in EasyBlog and Komento, however below is a list of the main interaction features I would setup.
These features tend to focus on user interaction and social integration and just because you set all of these features up does not mean you have to use them but makes life easier to turn them on at a later date.
I think one of these will belong to facebook ssytem and one to facbook author